{"components":{"schemas":{"app.AWSAccount":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"iam_role_arn":{"type":"string"},"id":{"type":"string"},"region":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AWSECRImageConfig":{"properties":{"aws_region":{"type":"string"},"component_config_id":{"description":"connection to parent model","type":"string"},"component_config_type":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"iam_role_arn":{"description":"actual configuration","type":"string"},"id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AWSIAMRoleType":{"enum":["runner_provision","runner_deprovision","runner_maintenance","breakglass","custom","runner_breakglass"],"type":"string"},"app.AWSStackOutputs":{"properties":{"account_id":{"type":"string"},"break_glass_role_arns":{"additionalProperties":{"type":"string"},"type":"object"},"custom_role_arns":{"additionalProperties":{"type":"string"},"type":"object"},"deprovision_iam_role_arn":{"type":"string"},"install_inputs":{"additionalProperties":{"type":"string"},"type":"object"},"maintenance_iam_role_arn":{"type":"string"},"private_subnets":{"items":{"type":"string"},"type":"array"},"provision_iam_role_arn":{"type":"string"},"public_subnets":{"items":{"type":"string"},"type":"array"},"region":{"type":"string"},"runner_iam_role_arn":{"type":"string"},"runner_subnet":{"type":"string"},"vpc_id":{"type":"string"}},"type":"object"},"app.Account":{"properties":{"account_type":{"$ref":"#/components/schemas/app.AccountType"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"org_ids":{"description":"ReadOnly Fields","items":{"type":"string"},"type":"array"},"permissions":{"$ref":"#/components/schemas/permissions.Set"},"roles":{"items":{"$ref":"#/components/schemas/app.Role"},"type":"array"},"subject":{"type":"string"},"updated_at":{"type":"string"},"user_journeys":{"items":{"$ref":"#/components/schemas/app.UserJourney"},"type":"array"}},"type":"object"},"app.AccountType":{"enum":["auth","auth0","service","canary","integration"],"type":"string"},"app.ActionWorkflow":{"properties":{"app_id":{"type":"string"},"config_count":{"type":"integer"},"configs":{"items":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"name":{"description":"metadata","type":"string"},"status":{"description":"TODO: change to default null after migration \u0026 after initial pr","type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.ActionWorkflowConfig":{"properties":{"action_workflow_id":{"type":"string"},"app_config_id":{"type":"string"},"app_id":{"type":"string"},"break_glass_role_arn":{"type":"string"},"component_dependency_ids":{"items":{"type":"string"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"references":{"items":{"type":"string"},"type":"array"},"refs":{"items":{"$ref":"#/components/schemas/refs.Ref"},"type":"array"},"role":{"type":"string"},"steps":{"items":{"$ref":"#/components/schemas/app.ActionWorkflowStepConfig"},"type":"array"},"timeout":{"type":"integer"},"triggers":{"description":"INFO: if adding new associations here, ensure they are added to the batch delete activity","items":{"$ref":"#/components/schemas/app.ActionWorkflowTriggerConfig"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.ActionWorkflowStepConfig":{"properties":{"action_workflow_config_id":{"type":"string"},"app_config_id":{"description":"this belongs to an app config id","type":"string"},"app_id":{"type":"string"},"command":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"idx":{"type":"integer"},"inline_contents":{"type":"string"},"name":{"description":"metadata","type":"string"},"previous_step_id":{"type":"string"},"public_git_vcs_config":{"allOf":[{"$ref":"#/components/schemas/app.PublicGitVCSConfig"}],"description":"all the details needed for a step"},"references":{"items":{"type":"string"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.ActionWorkflowTriggerConfig":{"properties":{"action_workflow_config_id":{"type":"string"},"app_config_id":{"description":"this belongs to an app config id","type":"string"},"app_id":{"type":"string"},"component":{"$ref":"#/components/schemas/app.Component"},"component_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"cron_schedule":{"type":"string"},"id":{"type":"string"},"index":{"type":"integer"},"type":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.ActionWorkflowTriggerType":{"enum":["manual","cron","adhoc","pre-deploy-component","post-deploy-component","pre-teardown-component","post-teardown-component","pre-secrets-sync","post-secrets-sync","pre-provision","post-provision","pre-reprovision","post-reprovision","pre-deprovision","post-deprovision","pre-deploy-all-components","post-deploy-all-components","pre-teardown-all-components","post-teardown-all-components","pre-deprovision-sandbox","post-deprovision-sandbox","pre-reprovision-sandbox","post-reprovision-sandbox","pre-update-inputs","post-update-inputs"],"type":"string"},"app.AdHocStepConfig":{"properties":{"action_workflow_config_id":{"type":"string"},"app_config_id":{"description":"this belongs to an app config id","type":"string"},"app_id":{"type":"string"},"command":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"idx":{"type":"integer"},"inline_contents":{"type":"string"},"name":{"description":"metadata","type":"string"},"previous_step_id":{"type":"string"},"public_git_vcs_config":{"allOf":[{"$ref":"#/components/schemas/app.PublicGitVCSConfig"}],"description":"all the details needed for a step"},"references":{"items":{"type":"string"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.App":{"properties":{"app_configs":{"items":{"$ref":"#/components/schemas/app.AppConfig"},"type":"array"},"cloud_platform":{"type":"string"},"config_count":{"description":"Transient field for config count (not persisted to database)","type":"integer"},"config_directory":{"type":"string"},"config_repo":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"input_config":{"allOf":[{"$ref":"#/components/schemas/app.AppInputConfig"}],"description":"fields set via after query"},"links":{"additionalProperties":{},"type":"object"},"name":{"type":"string"},"notifications_config":{"$ref":"#/components/schemas/app.NotificationsConfig"},"org_id":{"type":"string"},"runner_config":{"$ref":"#/components/schemas/app.AppRunnerConfig"},"runner_type":{"type":"string"},"sandbox_config":{"$ref":"#/components/schemas/app.AppSandboxConfig"},"status":{"type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppAWSIAMPolicyConfig":{"properties":{"app_aws_iam_role_config_id":{"type":"string"},"app_config_id":{"type":"string"},"cloudformation_stack_name":{"type":"string"},"contents":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"managed_policy_name":{"type":"string"},"name":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppAWSIAMRoleConfig":{"properties":{"app_config_id":{"type":"string"},"cloudformation_param_name":{"type":"string"},"cloudformation_stack_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"org_id":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"permissions_boundary":{"type":"string"},"policies":{"items":{"$ref":"#/components/schemas/app.AppAWSIAMPolicyConfig"},"type":"array"},"type":{"$ref":"#/components/schemas/app.AWSIAMRoleType"},"updated_at":{"type":"string"}},"type":"object"},"app.AppBranch":{"properties":{"app_id":{"type":"string"},"connected_github_vcs_config_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"},"workflows":{"items":{"$ref":"#/components/schemas/app.Workflow"},"type":"array"}},"type":"object"},"app.AppBreakGlassConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"aws_iam_roles":{"items":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppConfig":{"properties":{"action_workflow_configs":{"items":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"},"type":"array"},"app_branch":{"$ref":"#/components/schemas/app.AppBranch"},"app_branch_id":{"type":"string"},"app_id":{"type":"string"},"break_glass":{"$ref":"#/components/schemas/app.AppBreakGlassConfig"},"checksum":{"type":"string"},"cli_version":{"type":"string"},"component_config_connections":{"items":{"$ref":"#/components/schemas/app.ComponentConfigConnection"},"type":"array"},"component_ids":{"items":{"type":"string"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"input":{"$ref":"#/components/schemas/app.AppInputConfig"},"operation_role_config":{"$ref":"#/components/schemas/app.AppOperationRoleConfig"},"org_id":{"type":"string"},"permissions":{"$ref":"#/components/schemas/app.AppPermissionsConfig"},"policies":{"$ref":"#/components/schemas/app.AppPoliciesConfig"},"readme":{"type":"string"},"runner":{"$ref":"#/components/schemas/app.AppRunnerConfig"},"sandbox":{"$ref":"#/components/schemas/app.AppSandboxConfig"},"secrets":{"$ref":"#/components/schemas/app.AppSecretsConfig"},"stack":{"$ref":"#/components/schemas/app.AppStackConfig"},"state":{"type":"string"},"status":{"$ref":"#/components/schemas/app.AppConfigStatus"},"status_description":{"type":"string"},"updated_at":{"type":"string"},"vcs_connection_commit":{"$ref":"#/components/schemas/app.VCSConnectionCommit"},"version":{"description":"fields that are filled in via after query or views","type":"integer"}},"type":"object"},"app.AppConfigStatus":{"enum":["active","pending","syncing","error","outdated"],"type":"string"},"app.AppConfigVersion":{"enum":["","v2"],"type":"string"},"app.AppInput":{"properties":{"app_input_id":{"type":"string"},"cloudformation_stack_name":{"description":"CloudFormation configuration (computed fields, not stored in DB)","type":"string"},"cloudformation_stack_parameter_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"default":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"group":{"$ref":"#/components/schemas/app.AppInputGroup"},"group_id":{"type":"string"},"id":{"type":"string"},"index":{"type":"integer"},"internal":{"type":"boolean"},"name":{"type":"string"},"org_id":{"type":"string"},"required":{"type":"boolean"},"sensitive":{"type":"boolean"},"source":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppInputConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"input_groups":{"items":{"$ref":"#/components/schemas/app.AppInputGroup"},"type":"array"},"inputs":{"items":{"$ref":"#/components/schemas/app.AppInput"},"type":"array"},"install_inputs":{"items":{"$ref":"#/components/schemas/app.InstallInputs"},"type":"array"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppInputGroup":{"properties":{"app_input_id":{"type":"string"},"app_inputs":{"items":{"$ref":"#/components/schemas/app.AppInput"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"index":{"type":"integer"},"name":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppInputSource":{"enum":["vendor","customer"],"type":"string"},"app.AppOperationRoleConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"rules":{"items":{"$ref":"#/components/schemas/app.AppOperationRoleRule"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.AppOperationRoleRule":{"properties":{"app_operation_role_config_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"operation":{"type":"string"},"org":{"$ref":"#/components/schemas/app.Org"},"org_id":{"type":"string"},"principal_name":{"type":"string"},"principal_type":{"type":"string"},"role":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppPermissionsConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"aws_iam_roles":{"items":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"type":"array"},"break_glass_aws_iam_role":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"custom_aws_iam_roles":{"items":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"type":"array"},"deprovision_aws_iam_role":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"id":{"type":"string"},"maintenance_aws_iam_role":{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"},"org_id":{"type":"string"},"provision_aws_iam_role":{"allOf":[{"$ref":"#/components/schemas/app.AppAWSIAMRoleConfig"}],"description":"loaded via an after query"},"updated_at":{"type":"string"}},"type":"object"},"app.AppPoliciesConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"policies":{"items":{"$ref":"#/components/schemas/app.AppPolicyConfig"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.AppPolicyConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"app_policies_config":{"type":"string"},"components":{"items":{"type":"string"},"type":"array"},"contents":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"description":{"type":"string"},"engine":{"$ref":"#/components/schemas/config.AppPolicyEngine"},"id":{"type":"string"},"name":{"type":"string"},"org_id":{"type":"string"},"type":{"$ref":"#/components/schemas/config.AppPolicyType"},"updated_at":{"type":"string"}},"type":"object"},"app.AppRunnerConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"app_runner_type":{"$ref":"#/components/schemas/app.AppRunnerType"},"cloud_platform":{"$ref":"#/components/schemas/app.CloudPlatform"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"helm_driver":{"type":"string"},"id":{"type":"string"},"init_script":{"description":"takes a URL to a bash script ⤵  which will be `curl | bash`-ed on the VM. usually via user-data or equivalent.","type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppRunnerConfigHelmDriverType":{"enum":["secret","configmap",""],"type":"string"},"app.AppRunnerType":{"enum":["unknown","aws-ecs","aws-eks","azure-aks","azure-acs","local","aws","azure"],"type":"string"},"app.AppSandboxConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"aws_region_type":{"description":"cloud specific fields","type":"string"},"cloud_platform":{"description":"fields set via after query","type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"drift_schedule":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"operation_roles":{"additionalProperties":{"type":"string"},"description":"Operation roles map: operation type -\u003e role name","type":"object"},"org_id":{"type":"string"},"public_git_vcs_config":{"$ref":"#/components/schemas/app.PublicGitVCSConfig"},"references":{"items":{"type":"string"},"type":"array"},"refs":{"items":{"$ref":"#/components/schemas/refs.Ref"},"type":"array"},"terraform_version":{"type":"string"},"updated_at":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"variables_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"app.AppSecret":{"properties":{"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"length":{"description":"after query fields","type":"integer"},"name":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AppSecretConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"app_secrets_config_id":{"type":"string"},"auto_generate":{"type":"boolean"},"cloudformation_param_name":{"type":"string"},"cloudformation_stack_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"default":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"format":{"type":"string"},"id":{"type":"string"},"kubernetes_secret_name":{"type":"string"},"kubernetes_secret_namespace":{"type":"string"},"kubernetes_sync":{"description":"for syncing into kubernetes","type":"boolean"},"name":{"type":"string"},"org_id":{"type":"string"},"required":{"type":"boolean"},"updated_at":{"type":"string"}},"type":"object"},"app.AppSecretsConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"secrets":{"items":{"$ref":"#/components/schemas/app.AppSecretConfig"},"type":"array"},"updated_at":{"type":"string"}},"type":"object"},"app.AppStackConfig":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"custom_nested_stacks":{"items":{"$ref":"#/components/schemas/config.CustomNestedStack"},"type":"array"},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"org_id":{"type":"string"},"runner_nested_template_url":{"type":"string"},"type":{"$ref":"#/components/schemas/app.StackType"},"updated_at":{"type":"string"},"vpc_nested_template_url":{"type":"string"}},"type":"object"},"app.AzureAccount":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"location":{"type":"string"},"service_principal_app_id":{"type":"string"},"service_principal_password":{"type":"string"},"subscription_id":{"type":"string"},"subscription_tenant_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.AzureStackOutputs":{"properties":{"key_vault_id":{"type":"string"},"key_vault_name":{"type":"string"},"network_id":{"type":"string"},"network_name":{"type":"string"},"private_subnet_ids":{"items":{"type":"string"},"type":"array"},"private_subnet_names":{"items":{"type":"string"},"type":"array"},"public_subnet_ids":{"items":{"type":"string"},"type":"array"},"public_subnet_names":{"items":{"type":"string"},"type":"array"},"resource_group_id":{"type":"string"},"resource_group_location":{"type":"string"},"resource_group_name":{"type":"string"},"subscription_id":{"type":"string"},"subscription_tenant_id":{"type":"string"}},"type":"object"},"app.CloudPlatform":{"enum":["aws","azure","unknown"],"type":"string"},"app.CloudPlatformRegion":{"properties":{"display_name":{"type":"string"},"icon":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"type":"object"},"app.Component":{"properties":{"app_id":{"type":"string"},"config_versions":{"type":"integer"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"dependencies":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"latest_build":{"$ref":"#/components/schemas/app.ComponentBuild"},"links":{"additionalProperties":{},"type":"object"},"name":{"type":"string"},"resolved_var_name":{"type":"string"},"status":{"type":"string"},"status_description":{"type":"string"},"type":{"$ref":"#/components/schemas/app.ComponentType"},"updated_at":{"type":"string"},"var_name":{"type":"string"}},"type":"object"},"app.ComponentBuild":{"properties":{"checksum":{"description":"checksum of our intermediate component config","type":"string"},"component_config_connection":{"$ref":"#/components/schemas/app.ComponentConfigConnection"},"component_config_connection_id":{"description":"DEPRECATED: will retain the field to connect against the last component config connection that set this build","type":"string"},"component_config_version":{"type":"integer"},"component_id":{"description":"Read-only fields set on the object to de-nest data","type":"string"},"component_name":{"type":"string"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"git_ref":{"type":"string"},"id":{"type":"string"},"install_deploys":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"},"log_stream":{"$ref":"#/components/schemas/app.LogStream"},"policy_reports":{"items":{"$ref":"#/components/schemas/app.PolicyReport"},"type":"array"},"releases":{"items":{"$ref":"#/components/schemas/app.ComponentRelease"},"type":"array"},"runner_job":{"allOf":[{"$ref":"#/components/schemas/app.RunnerJob"}],"description":"runner details"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"updated_at":{"type":"string"},"vcs_connection_commit":{"$ref":"#/components/schemas/app.VCSConnectionCommit"}},"type":"object"},"app.ComponentConfigConnection":{"properties":{"app_config_id":{"type":"string"},"app_config_version":{"type":"integer"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\"). Max 1h.","type":"string"},"checksum":{"type":"string"},"component_dependency_ids":{"items":{"type":"string"},"type":"array"},"component_id":{"type":"string"},"component_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\"). Max 1h.","type":"string"},"docker_build":{"$ref":"#/components/schemas/app.DockerBuildComponentConfig"},"drift_schedule":{"type":"string"},"external_image":{"$ref":"#/components/schemas/app.ExternalImageComponentConfig"},"helm":{"$ref":"#/components/schemas/app.HelmComponentConfig"},"id":{"type":"string"},"job":{"$ref":"#/components/schemas/app.JobComponentConfig"},"kubernetes_manifest":{"$ref":"#/components/schemas/app.KubernetesManifestComponentConfig"},"operation_roles":{"additionalProperties":{"type":"string"},"description":"Operation roles map: operation type -\u003e role name","type":"object"},"references":{"items":{"type":"string"},"type":"array"},"refs":{"items":{"$ref":"#/components/schemas/refs.Ref"},"type":"array"},"terraform_module":{"$ref":"#/components/schemas/app.TerraformModuleComponentConfig"},"type":{"$ref":"#/components/schemas/app.ComponentType"},"updated_at":{"type":"string"},"version":{"type":"integer"}},"type":"object"},"app.ComponentRelease":{"properties":{"build_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"release_steps":{"items":{"$ref":"#/components/schemas/app.ComponentReleaseStep"},"type":"array"},"status":{"type":"string"},"status_description":{"type":"string"},"total_release_steps":{"type":"integer"},"updated_at":{"type":"string"}},"type":"object"},"app.ComponentReleaseStep":{"properties":{"component_release_id":{"description":"parent release ID","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"delay":{"description":"fields to control the delay of the individual step, as this is set based on the parent strategy","type":"string"},"id":{"type":"string"},"install_deploys":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"},"requested_install_ids":{"description":"When a step is created, a set of installs are targeted. However, by the time the release step goes out, the\ninstall might have been setup in any order of ways.","items":{"type":"string"},"type":"array"},"status":{"type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.ComponentType":{"enum":["terraform_module","helm_chart","docker_build","external_image","job","kubernetes_manifest","unknown"],"type":"string"},"app.CompositeStatus":{"properties":{"created_at_ts":{"type":"integer"},"created_by_id":{"type":"string"},"history":{"items":{"$ref":"#/components/schemas/app.CompositeStatus"},"type":"array"},"metadata":{"additionalProperties":{},"type":"object"},"status":{"$ref":"#/components/schemas/app.Status"},"status_human_description":{"type":"string"}},"type":"object"},"app.ConnectedGithubVCSConfig":{"properties":{"branch":{"type":"string"},"component_config_id":{"description":"parent component","type":"string"},"component_config_type":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"directory":{"type":"string"},"id":{"type":"string"},"repo":{"type":"string"},"repo_name":{"type":"string"},"repo_owner":{"type":"string"},"updated_at":{"type":"string"},"vcs_connection":{"$ref":"#/components/schemas/app.VCSConnection"},"vcs_connection_id":{"type":"string"}},"type":"object"},"app.DockerBuildComponentConfig":{"properties":{"build_args":{"items":{"type":"string"},"type":"array"},"component_config_connection_id":{"description":"value","type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"dockerfile":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"public_git_vcs_config":{"$ref":"#/components/schemas/app.PublicGitVCSConfig"},"target":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.DriftedObject":{"properties":{"app_sandbox_config_id":{"type":"string"},"component_build_id":{"type":"string"},"component_name":{"type":"string"},"install_component_id":{"type":"string"},"install_id":{"type":"string"},"install_sandbox_id":{"type":"string"},"install_workflow_id":{"type":"string"},"org_id":{"type":"string"},"target_id":{"type":"string"},"target_type":{"description":"These fields will be populated from the drifts_view","type":"string"}},"type":"object"},"app.ExternalImageComponentConfig":{"properties":{"aws_ecr_image_config":{"$ref":"#/components/schemas/app.AWSECRImageConfig"},"component_config_connection_id":{"description":"value","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"image_url":{"type":"string"},"tag":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.HelmChart":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"helmReleases":{"items":{"$ref":"#/components/schemas/app.HelmRelease"},"type":"array"},"id":{"type":"string"},"org_id":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.HelmComponentConfig":{"properties":{"chart_name":{"description":"Helm specific configurations","type":"string"},"component_config_connection_id":{"description":"parent reference","type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"helm_config_json":{"$ref":"#/components/schemas/app.HelmConfig"},"id":{"type":"string"},"namespace":{"type":"string"},"public_git_vcs_config":{"$ref":"#/components/schemas/app.PublicGitVCSConfig"},"storage_driver":{"type":"string"},"take_ownership":{"description":"Newer config fields that we don't need a column for","type":"boolean"},"updated_at":{"type":"string"},"values":{"additionalProperties":{"type":"string"},"type":"object"},"values_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"app.HelmConfig":{"properties":{"chart_name":{"type":"string"},"helm_repo_config":{"$ref":"#/components/schemas/app.HelmRepoConfig"},"namespace":{"type":"string"},"storage_driver":{"type":"string"},"take_ownership":{"description":"Newer fields that we don't need to store as columns in the database","type":"boolean"},"values":{"additionalProperties":{"type":"string"},"type":"object"},"values_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"app.HelmRelease":{"properties":{"body":{"description":"The rspb.Release body, as a base64-encoded string","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"helmChart":{"$ref":"#/components/schemas/app.HelmChart"},"helmChartID":{"type":"string"},"key":{"type":"string"},"labels":{"$ref":"#/components/schemas/app.JSONMap"},"name":{"description":"Release \"labels\" that can be used as filters in the storage.Query(labels map[string]string)\nwe implemented. Note that allowing Helm users to filter against new dimensions will require a\nnew migration to be added, and the Create and/or update functions to be updated accordingly.","type":"string"},"namespace":{"type":"string"},"org_id":{"type":"string"},"owner":{"type":"string"},"status":{"type":"string"},"type":{"description":"See https://github.com/helm/helm/blob/c9fe3d118caec699eb2565df9838673af379ce12/pkg/storage/driver/secrets.go#L231","type":"string"},"updated_at":{"type":"string"},"version":{"type":"integer"}},"type":"object"},"app.HelmRepoConfig":{"properties":{"chart":{"type":"string"},"repo_url":{"type":"string"},"version":{"type":"string"}},"type":"object"},"app.Install":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"app_runner_config":{"$ref":"#/components/schemas/app.AppRunnerConfig"},"app_sandbox_config":{"$ref":"#/components/schemas/app.AppSandboxConfig"},"aws_account":{"$ref":"#/components/schemas/app.AWSAccount"},"azure_account":{"$ref":"#/components/schemas/app.AzureAccount"},"cloud_platform":{"type":"string"},"component_statuses":{"additionalProperties":{"type":"string"},"type":"object"},"composite_component_status":{"type":"string"},"composite_component_status_description":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"drifted_objects":{"items":{"$ref":"#/components/schemas/app.DriftedObject"},"type":"array"},"id":{"type":"string"},"install_action_workflows":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"type":"array"},"install_components":{"items":{"$ref":"#/components/schemas/app.InstallComponent"},"type":"array"},"install_config":{"$ref":"#/components/schemas/app.InstallConfig"},"install_events":{"items":{"$ref":"#/components/schemas/app.InstallEvent"},"type":"array"},"install_inputs":{"items":{"$ref":"#/components/schemas/app.InstallInputs"},"type":"array"},"install_number":{"type":"integer"},"install_sandbox_runs":{"items":{"$ref":"#/components/schemas/app.InstallSandboxRun"},"type":"array"},"install_stack":{"$ref":"#/components/schemas/app.InstallStack"},"install_states":{"items":{"$ref":"#/components/schemas/app.InstallState"},"type":"array"},"links":{"additionalProperties":{},"type":"object"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"runner_id":{"type":"string"},"runner_status":{"type":"string"},"runner_status_description":{"type":"string"},"runner_type":{"type":"string"},"sandbox":{"$ref":"#/components/schemas/app.InstallSandbox"},"sandbox_status":{"type":"string"},"sandbox_status_description":{"type":"string"},"status":{"description":"TODO(jm): deprecate these fields once the terraform provider has been updated","type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"},"workflows":{"items":{"$ref":"#/components/schemas/app.Workflow"},"type":"array"}},"type":"object"},"app.InstallActionWorkflow":{"properties":{"action_workflow":{"$ref":"#/components/schemas/app.ActionWorkflow"},"action_workflow_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"runs":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"},"status":{"description":"after query fields filled in after querying","type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallActionWorkflowRun":{"properties":{"action_workflow_config_id":{"type":"string"},"config":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"execution_time":{"description":"after query","type":"integer"},"id":{"type":"string"},"install_action_workflow":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"install_action_workflow_id":{"type":"string"},"install_id":{"type":"string"},"install_workflow_id":{"type":"string"},"log_stream":{"$ref":"#/components/schemas/app.LogStream"},"outputs":{"additionalProperties":true,"type":"object"},"role":{"description":"Role to be used when running this action","type":"string"},"run_env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"steps":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRunStep"},"type":"array"},"trigger_type":{"$ref":"#/components/schemas/app.ActionWorkflowTriggerType"},"triggered_by_id":{"type":"string"},"triggered_by_type":{"type":"string"},"updated_at":{"type":"string"},"workflow":{"$ref":"#/components/schemas/app.Workflow"},"workflow_id":{"type":"string"}},"type":"object"},"app.InstallActionWorkflowRunStatus":{"enum":["finished","queued","in-progress","error","timed-out","cancelled","unknown"],"type":"string"},"app.InstallActionWorkflowRunStep":{"properties":{"adhoc_config":{"$ref":"#/components/schemas/app.AdHocStepConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"execution_duration":{"type":"integer"},"id":{"type":"string"},"install_action_workflow_run_id":{"type":"string"},"status":{"$ref":"#/components/schemas/app.InstallActionWorkflowRunStepStatus"},"step_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallActionWorkflowRunStepStatus":{"enum":["finished","pending","in-progress","timed-out","error"],"type":"string"},"app.InstallApprovalOption":{"enum":["approve-all","prompt"],"type":"string"},"app.InstallAuditLog":{"properties":{"install_id":{"type":"string"},"log_line":{"type":"string"},"time_stamp":{"type":"string"},"type":{"type":"string"}},"type":"object"},"app.InstallComponent":{"properties":{"component":{"$ref":"#/components/schemas/app.Component"},"component_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"drifted_object":{"$ref":"#/components/schemas/app.DriftedObject"},"helm_chart":{"$ref":"#/components/schemas/app.HelmChart"},"id":{"type":"string"},"install_deploys":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"},"install_id":{"type":"string"},"links":{"additionalProperties":{},"type":"object"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"terraform_workspace":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallConfig":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallDeploy":{"properties":{"action_workflow_runs":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"},"build_id":{"type":"string"},"component_build":{"$ref":"#/components/schemas/app.ComponentBuild"},"component_config_version":{"type":"integer"},"component_id":{"type":"string"},"component_name":{"type":"string"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_component_id":{"type":"string"},"install_deploy_type":{"$ref":"#/components/schemas/app.InstallDeployType"},"install_id":{"description":"Fields that are de-nested at read time using AfterQuery","type":"string"},"install_workflow_id":{"description":"DEPRECATED: use WorkflowID","type":"string"},"log_stream":{"$ref":"#/components/schemas/app.LogStream"},"oci_artifact":{"$ref":"#/components/schemas/app.OCIArtifact"},"outputs":{"additionalProperties":{},"type":"object"},"plan_only":{"type":"boolean"},"policy_reports":{"items":{"$ref":"#/components/schemas/app.PolicyReport"},"type":"array"},"release_id":{"type":"string"},"role":{"description":"Role to be used when running this component","type":"string"},"runner_jobs":{"description":"runner details","items":{"$ref":"#/components/schemas/app.RunnerJob"},"type":"array"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"updated_at":{"type":"string"},"workflow":{"$ref":"#/components/schemas/app.Workflow"},"workflow_id":{"type":"string"}},"type":"object"},"app.InstallDeployType":{"enum":["sync-image","apply","teardown"],"type":"string"},"app.InstallEvent":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"operation":{"type":"string"},"operation_name":{"type":"string"},"operation_status":{"$ref":"#/components/schemas/app.OperationStatus"},"org_id":{"type":"string"},"payload":{"additionalProperties":{"type":"string"},"type":"object"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallInputs":{"properties":{"app_input_config_id":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"org_id":{"type":"string"},"redacted_values":{"additionalProperties":{"type":"string"},"type":"object"},"updated_at":{"type":"string"},"values":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"app.InstallSandbox":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"install_sandbox_runs":{"items":{"$ref":"#/components/schemas/app.InstallSandboxRun"},"type":"array"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"terraform_workspace":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallSandboxRun":{"properties":{"action_workflow_runs":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"},"app_sandbox_config":{"$ref":"#/components/schemas/app.AppSandboxConfig"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"install_sandbox_id":{"description":"TODO: once we run a backfill we can make this non pointer","type":"string"},"install_workflow_id":{"type":"string"},"log_stream":{"$ref":"#/components/schemas/app.LogStream"},"outputs":{"additionalProperties":{},"type":"object"},"policy_reports":{"items":{"$ref":"#/components/schemas/app.PolicyReport"},"type":"array"},"role":{"description":"Role to be used when planning and applying sandbox runs","type":"string"},"run_type":{"$ref":"#/components/schemas/app.SandboxRunType"},"runner_jobs":{"description":"runner details","items":{"$ref":"#/components/schemas/app.RunnerJob"},"type":"array"},"status":{"type":"string"},"status_description":{"type":"string"},"status_v2":{"$ref":"#/components/schemas/app.CompositeStatus"},"updated_at":{"type":"string"},"workflow":{"$ref":"#/components/schemas/app.Workflow"},"workflow_id":{"description":"Fields that are de-nested at read time using AfterQuery","type":"string"}},"type":"object"},"app.InstallStack":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"install_stack_outputs":{"$ref":"#/components/schemas/app.InstallStackOutputs"},"org_id":{"type":"string"},"updated_at":{"type":"string"},"versions":{"items":{"$ref":"#/components/schemas/app.InstallStackVersion"},"type":"array"}},"type":"object"},"app.InstallStackOutputs":{"properties":{"aws":{"$ref":"#/components/schemas/app.AWSStackOutputs"},"azure":{"$ref":"#/components/schemas/app.AzureStackOutputs"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"data":{"additionalProperties":{"type":"string"},"type":"object"},"data_contents":{"additionalProperties":{},"type":"object"},"id":{"type":"string"},"install_stack_id":{"type":"string"},"install_version_run_id":{"type":"string"},"org_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallStackVersion":{"properties":{"app_config_id":{"type":"string"},"aws_bucket_key":{"type":"string"},"aws_bucket_name":{"description":"aws configuration parameters","type":"string"},"checksum":{"type":"string"},"composite_status":{"$ref":"#/components/schemas/app.CompositeStatus"},"contents":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"install_stack_id":{"type":"string"},"org_id":{"type":"string"},"phone_home_id":{"type":"string"},"phone_home_url":{"type":"string"},"quick_link_url":{"type":"string"},"runs":{"items":{"$ref":"#/components/schemas/app.InstallStackVersionRun"},"type":"array"},"template_url":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallStackVersionRun":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"data":{"additionalProperties":{"type":"string"},"type":"object"},"data_contents":{"additionalProperties":{},"type":"object"},"id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.InstallState":{"properties":{"archived":{"type":"boolean"},"contents":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"stale_at":{"$ref":"#/components/schemas/generics.NullTime"},"triggered_by_id":{"type":"string"},"triggered_by_type":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"integer"}},"type":"object"},"app.JSONMap":{"additionalProperties":{"type":"string"},"type":"object"},"app.JobComponentConfig":{"properties":{"args":{"items":{"type":"string"},"type":"array"},"cmd":{"items":{"type":"string"},"type":"array"},"component_config_connection_id":{"description":"value","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"image_url":{"description":"Image attributes, copied from a docker_buid or external_image component.","type":"string"},"tag":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.KubernetesManifestComponentConfig":{"properties":{"component_config_connection_id":{"description":"value","type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"kustomize":{"allOf":[{"$ref":"#/components/schemas/app.KustomizeConfig"}],"description":"Kustomize configuration (mutually exclusive with Manifest)"},"manifest":{"description":"Primary fields - used for inline manifests (fully supported)","type":"string"},"namespace":{"type":"string"},"public_git_vcs_config":{"allOf":[{"$ref":"#/components/schemas/app.PublicGitVCSConfig"}],"description":"VCS configuration for kustomize sources (similar to HelmComponentConfig)"},"updated_at":{"type":"string"}},"type":"object"},"app.KustomizeConfig":{"properties":{"enable_helm":{"description":"Enable Helm chart inflation during kustomize build","type":"boolean"},"load_restrictor":{"description":"Load restrictor: \"none\" or \"rootOnly\" (default: \"rootOnly\")","type":"string"},"patches":{"description":"Additional patch files to apply after kustomize build","items":{"type":"string"},"type":"array"},"path":{"description":"Path to kustomization directory (relative to source root)","type":"string"}},"type":"object"},"app.LatestRunnerHeartBeat":{"properties":{"alive_time":{"type":"integer"},"created_at":{"type":"string"},"process":{"type":"string"},"runner_id":{"type":"string"},"started_at":{"type":"string"},"version":{"type":"string"}},"type":"object"},"app.LogStream":{"properties":{"attrs":{"additionalProperties":{"type":"string"},"type":"object"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"open":{"type":"boolean"},"org_id":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"runner_api_url":{"type":"string"},"updated_at":{"type":"string"},"write_token":{"type":"string"}},"type":"object"},"app.NotificationsConfig":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"slack_webhook_url":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.OCIArtifact":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"architecture":{"type":"string"},"artifact_type":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"digest":{"type":"string"},"id":{"type":"string"},"media_type":{"type":"string"},"org_id":{"type":"string"},"os":{"description":"Platform fields","type":"string"},"os_features":{"items":{"type":"string"},"type":"array"},"os_version":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"repository":{"type":"string"},"size":{"type":"integer"},"tag":{"type":"string"},"updated_at":{"type":"string"},"urls":{"items":{"type":"string"},"type":"array"},"variant":{"type":"string"}},"type":"object"},"app.OperationStatus":{"enum":["started","finished","noop","failed"],"type":"string"},"app.OperationType":{"enum":["provision","deprovision","deploy","teardown","reprovision","trigger"],"type":"string"},"app.Org":{"properties":{"app_count":{"description":"Transient fields for counts (not persisted to database)","type":"integer"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"features":{"$ref":"#/components/schemas/types.StringBoolMap"},"id":{"type":"string"},"install_count":{"type":"integer"},"links":{"additionalProperties":{},"type":"object"},"logo_url":{"type":"string"},"name":{"type":"string"},"notifications_config":{"$ref":"#/components/schemas/app.NotificationsConfig"},"runner_group":{"$ref":"#/components/schemas/app.RunnerGroup"},"sandbox_mode":{"type":"boolean"},"status":{"type":"string"},"status_description":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updated_at":{"type":"string"},"vcs_connections":{"items":{"$ref":"#/components/schemas/app.VCSConnection"},"type":"array"}},"type":"object"},"app.OrgFeatureInfo":{"properties":{"description":{"type":"string"},"name":{"type":"string"}},"type":"object"},"app.OrgInvite":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"org_id":{"description":"parent relationship","type":"string"},"role_type":{"$ref":"#/components/schemas/app.RoleType"},"status":{"$ref":"#/components/schemas/app.OrgInviteStatus"},"updated_at":{"type":"string"}},"type":"object"},"app.OrgInviteStatus":{"enum":["pending","accepted"],"type":"string"},"app.OtelLogRecord":{"properties":{"body":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"log_attributes":{"additionalProperties":{"type":"string"},"type":"object"},"log_stream_id":{"type":"string"},"org_id":{"description":"internal attributes","type":"string"},"resource_attributes":{"additionalProperties":{"type":"string"},"type":"object"},"resource_schema_url":{"type":"string"},"runner_group_id":{"type":"string"},"runner_id":{"type":"string"},"runner_job_execution_id":{"type":"string"},"runner_job_execution_step":{"type":"string"},"runner_job_id":{"type":"string"},"scope_attributes":{"additionalProperties":{"type":"string"},"type":"object"},"scope_name":{"type":"string"},"scope_schema_url":{"type":"string"},"scope_version":{"type":"string"},"service_name":{"type":"string"},"severity_number":{"type":"integer"},"severity_text":{"type":"string"},"span_id":{"type":"string"},"timestamp":{"description":"OTEL log message attributes","type":"string"},"timestamp_date":{"type":"string"},"timestamp_time":{"type":"string"},"trace_flags":{"type":"integer"},"trace_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.Policy":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"name":{"$ref":"#/components/schemas/app.PolicyName"},"permissions":{"additionalProperties":{"type":"string"},"description":"Permissions are used to track granular permissions for each domain","type":"object"},"role_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.PolicyInputRef":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}},"type":"object"},"app.PolicyName":{"enum":["org_admin","installer","runner","hosted_installer"],"type":"string"},"app.PolicyReport":{"properties":{"app_id":{"description":"Denormalized context for filtering","type":"string"},"app_name":{"type":"string"},"component_id":{"type":"string"},"component_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"deny_count":{"description":"Summary counts for list views","type":"integer"},"evaluated_at":{"description":"Canonical policy evaluation data","type":"string"},"id":{"type":"string"},"inputs":{"items":{"$ref":"#/components/schemas/app.PolicyInputRef"},"type":"array"},"install_id":{"type":"string"},"install_name":{"type":"string"},"org_name":{"description":"Denormalized display names for human-readable reports","type":"string"},"owner_id":{"description":"Polymorphic relationship to the impacted Nuon resource (indexes defined in Indexes())","type":"string"},"owner_type":{"$ref":"#/components/schemas/app.PolicyReportOwnerType"},"pass_count":{"type":"integer"},"policies":{"items":{"$ref":"#/components/schemas/app.PolicyResult"},"type":"array"},"policy_ids":{"items":{"type":"string"},"type":"array"},"runner_job_id":{"type":"string"},"status":{"$ref":"#/components/schemas/app.CompositeStatus"},"updated_at":{"type":"string"},"violations":{"items":{"$ref":"#/components/schemas/app.PolicyViolation"},"type":"array"},"warn_count":{"type":"integer"},"workflow_step_policy_validation_id":{"description":"Optional context references (indexes defined in Indexes())","type":"string"}},"type":"object"},"app.PolicyReportOwnerType":{"enum":["install_deploys","install_sandbox_runs","component_builds"],"type":"string"},"app.PolicyResult":{"properties":{"deny_count":{"type":"integer"},"input_count":{"type":"integer"},"pass_count":{"type":"integer"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"status":{"description":"\"deny\", \"warn\", or \"pass\"","type":"string"},"warn_count":{"type":"integer"}},"type":"object"},"app.PolicyViolation":{"properties":{"input_identity":{"description":"Human-readable input reference (e.g., \"Deployment/default/nginx\")","type":"string"},"input_index":{"type":"integer"},"message":{"type":"string"},"policy_id":{"type":"string"},"policy_name":{"type":"string"},"severity":{"description":"\"deny\" or \"warn\"","type":"string"}},"type":"object"},"app.ProviderType":{"enum":["oidc","google","github"],"type":"string"},"app.PublicGitVCSConfig":{"properties":{"branch":{"type":"string"},"component_config_id":{"type":"string"},"component_config_type":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"directory":{"type":"string"},"id":{"type":"string"},"repo":{"description":"actual configuration","type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.Role":{"properties":{"createdBy":{"$ref":"#/components/schemas/app.Account"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"policies":{"items":{"$ref":"#/components/schemas/app.Policy"},"type":"array"},"role_type":{"$ref":"#/components/schemas/app.RoleType"},"updated_at":{"type":"string"}},"type":"object"},"app.RoleType":{"enum":["org_admin","installer","runner","hosted-installer"],"type":"string"},"app.Runner":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"display_name":{"type":"string"},"id":{"type":"string"},"jobs":{"items":{"$ref":"#/components/schemas/app.RunnerJob"},"type":"array"},"name":{"type":"string"},"operations":{"items":{"$ref":"#/components/schemas/app.RunnerOperation"},"type":"array"},"org_id":{"type":"string"},"runner_group":{"$ref":"#/components/schemas/app.RunnerGroup"},"runner_group_id":{"type":"string"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"status":{"type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerGroup":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"owner_id":{"description":"parent can org, install or in the future, builtin runner group","type":"string"},"owner_type":{"type":"string"},"platform":{"$ref":"#/components/schemas/app.AppRunnerType"},"runners":{"items":{"$ref":"#/components/schemas/app.Runner"},"type":"array"},"settings":{"$ref":"#/components/schemas/app.RunnerGroupSettings"},"type":{"$ref":"#/components/schemas/app.RunnerGroupType"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerGroupSettings":{"properties":{"aws_cloudformation_stack_type":{"type":"string"},"aws_instance_type":{"description":"aws runner specifics runner-v2","type":"string"},"aws_max_instance_lifetime":{"description":"Default: 7 days","type":"integer"},"aws_tags":{"additionalProperties":{"type":"string"},"type":"object"},"container_image_tag":{"type":"string"},"container_image_url":{"description":"configuration for deploying the runner","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"enable_logging":{"type":"boolean"},"enable_metrics":{"type":"boolean"},"enable_sentry":{"type":"boolean"},"groups":{"description":"the job loop groups the runner should poll for","items":{"type":"string"},"type":"array"},"heart_beat_timeout":{"description":"Various settings for the runner to handle internally","type":"integer"},"id":{"type":"string"},"local_aws_iam_role_arn":{"type":"string"},"logging_level":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata is used as both log and metric tags/attributes in the runner when emitting data","type":"object"},"org_aws_iam_role_arn":{"description":"org runner specifics","type":"string"},"org_id":{"type":"string"},"org_k8s_service_account_name":{"type":"string"},"otel_collector_config":{"type":"string"},"platform":{"description":"platform variable for use in the runner","type":"string"},"runner_api_url":{"type":"string"},"runner_group_id":{"type":"string"},"sandbox_mode":{"description":"configuration for managing the runner server side","type":"boolean"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerGroupType":{"enum":["install","org"],"type":"string"},"app.RunnerHealthCheck":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"minute_bucket":{"type":"string"},"process":{"type":"string"},"runner_id":{"type":"string"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"status":{"$ref":"#/components/schemas/app.RunnerStatus"},"status_code":{"type":"integer"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerHeartBeat":{"properties":{"alive_time":{"type":"integer"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"process":{"type":"string"},"runner_id":{"type":"string"},"started_at":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"string"}},"type":"object"},"app.RunnerJob":{"properties":{"available_timeout":{"description":"available timeout is how long a job can be marked as \"available\" before being requeued","type":"integer"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"execution_count":{"type":"integer"},"execution_time":{"type":"integer"},"execution_timeout":{"description":"execution timeout is how long a job can be marked as \"exeucuting\" before being requeued","type":"integer"},"executions":{"items":{"$ref":"#/components/schemas/app.RunnerJobExecution"},"type":"array"},"final_runner_job_execution_id":{"type":"string"},"finished_at":{"type":"string"},"group":{"$ref":"#/components/schemas/app.RunnerJobGroup"},"id":{"type":"string"},"json":{"$ref":"#/components/schemas/app.RunnerJobPlan"},"log_stream_id":{"type":"string"},"max_executions":{"type":"integer"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"operation":{"$ref":"#/components/schemas/app.RunnerJobOperationType"},"org_id":{"type":"string"},"outputs":{"additionalProperties":true,"type":"object"},"outputs_json":{"type":"string"},"overall_timeout":{"description":"overall timeout is how long a job can be attempted, before being cancelled","type":"integer"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"queue_timeout":{"description":"queue timeout is how long a job can be queued, before being made available","type":"integer"},"runner_id":{"type":"string"},"started_at":{"type":"string"},"status":{"$ref":"#/components/schemas/app.RunnerJobStatus"},"status_description":{"type":"string"},"type":{"$ref":"#/components/schemas/app.RunnerJobType"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerJobExecution":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Metadata is used to store additional information about the execution {e.g., client version.}","type":"object"},"org_id":{"type":"string"},"outputs":{"$ref":"#/components/schemas/app.RunnerJobExecutionOutputs"},"result":{"$ref":"#/components/schemas/app.RunnerJobExecutionResult"},"runner_job_id":{"type":"string"},"status":{"$ref":"#/components/schemas/app.RunnerJobExecutionStatus"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerJobExecutionOutputs":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"outputs":{"additionalProperties":{"type":"object"},"type":"object"},"outputs_json":{"type":"string"},"runner_job_execution_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerJobExecutionResult":{"properties":{"contents":{"type":"string"},"contents_display":{"type":"string"},"contents_display_gzip":{"type":"string"},"contents_gzip":{"description":"columns for storage of gzipped contents and plans","type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"error_code":{"type":"integer"},"error_metadata":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"org_id":{"type":"string"},"runner_job_execution_id":{"type":"string"},"success":{"type":"boolean"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerJobExecutionStatus":{"enum":["pending","initializing","in-progress","cleaning-up","finished","failed","timed-out","not-attempted","cancelled","unknown"],"type":"string"},"app.RunnerJobGroup":{"enum":["health-checks","sync","build","deploy","sandbox","runner","operations","management","actions","","any"],"type":"string"},"app.RunnerJobOperationType":{"enum":["exec","build","create-apply-plan","create-teardown-plan","apply-plan","unknown"],"type":"string"},"app.RunnerJobPlan":{"properties":{"composite_plan":{"$ref":"#/components/schemas/plantypes.CompositePlan"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"plan_json":{"type":"string"},"runner_job_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerJobStatus":{"enum":["queued","available","in-progress","finished","failed","timed-out","not-attempted","cancelled","unknown"],"type":"string"},"app.RunnerJobType":{"enum":["health-check","docker-build","container-image-build","terraform-module-build","helm-chart-build","kubernetes-manifest-build","noop-build","oci-sync","noop-sync","fetch-image-metadata","terraform-deploy","helm-chart-deploy","job-deploy","kubernetes-manifest-deploy","noop-deploy","shut-down","update-version","noop","mng-vm-shut-down","mng-shut-down","mng-runner-update-version","mng-runner-restart","mng-fetch-token","sandbox-terraform","sandbox-terraform-plan","sandbox-sync-secrets","runner-helm","runner-terraform","runner-local","actions-workflow"],"type":"string"},"app.RunnerOperation":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"log_stream":{"allOf":[{"$ref":"#/components/schemas/app.LogStream"}],"description":"job details"},"operation_type":{"$ref":"#/components/schemas/app.RunnerOperationType"},"runner_id":{"type":"string"},"status":{"type":"string"},"status_description":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.RunnerOperationType":{"enum":["provision","provision_service_account","reprovision","deprovision"],"type":"string"},"app.RunnerStatus":{"enum":["error","active","pending","provisioning","deprovisioning","deprovisioned","reprovisioning","offline","awaiting-install-stack-run","unknown"],"type":"string"},"app.SandboxRunType":{"enum":["provision","reprovision","deprovision"],"type":"string"},"app.StackType":{"enum":["aws-cloudformation"],"type":"string"},"app.Status":{"enum":["error","pending","in-progress","checking-plan","success","not-attempted","cancelled","retrying","discarded","user-skipped","auto-skipped","planning","applying","queued","warning","generating","awaiting-user-run","provisioning","active","outdated","expired","approved","drifted","no-drift","approval-expired","approval-denied","approval-retry","building","deleting","noop","approval-awaiting"],"type":"string"},"app.TerraformLock":{"properties":{"created":{"type":"string"},"id":{"type":"string"},"info":{"type":"string"},"operation":{"type":"string"},"path":{"type":"string"},"version":{},"who":{"type":"string"}},"type":"object"},"app.TerraformModuleComponentConfig":{"properties":{"component_config_connection_id":{"description":"parent reference","type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/app.ConnectedGithubVCSConfig"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"type":"string"},"public_git_vcs_config":{"$ref":"#/components/schemas/app.PublicGitVCSConfig"},"updated_at":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"variables_files":{"items":{"type":"string"},"type":"array"},"version":{"description":"terraform configuration values","type":"string"}},"type":"object"},"app.TerraformStateInstance":{"properties":{"attributes":{"additionalProperties":{},"type":"object"},"schema_version":{"type":"integer"},"sensitive_attributes":{"items":{},"type":"array"}},"type":"object"},"app.TerraformStateResource":{"properties":{"instances":{"items":{"$ref":"#/components/schemas/app.TerraformStateInstance"},"type":"array"},"mode":{"type":"string"},"name":{"type":"string"},"provider":{"type":"string"},"type":{"type":"string"}},"type":"object"},"app.TerraformWorkspace":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.TerraformWorkspaceLock":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"lock":{"$ref":"#/components/schemas/app.TerraformLock"},"org_id":{"type":"string"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"runner_job_id":{"type":"string"},"updated_at":{"type":"string"},"workspace_id":{"description":"Foreign key to TerraformWorkspace with unique constraint to prevent multiple active locks","type":"string"}},"type":"object"},"app.TerraformWorkspaceState":{"properties":{"contents":{"items":{"type":"integer"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"revision":{"type":"integer"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"runner_job_id":{"type":"string"},"terraform_workspace":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"terraform_workspace_id":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.TerraformWorkspaceStateJSON":{"properties":{"contents":{"items":{"type":"integer"},"type":"array"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_id":{"type":"string"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"runner_job_id":{"type":"string"},"updated_at":{"type":"string"},"workspace_id":{"description":"Foreign key to TerraformWorkspace with unique constraint to prevent conflicting states for a workspace","type":"string"}},"type":"object"},"app.UserJourney":{"properties":{"name":{"type":"string"},"steps":{"items":{"$ref":"#/components/schemas/app.UserJourneyStep"},"type":"array"},"title":{"type":"string"}},"type":"object"},"app.UserJourneyStep":{"properties":{"complete":{"type":"boolean"},"completed_at":{"description":"Top-level completion tracking fields","type":"string"},"completion_method":{"type":"string"},"completion_source":{"type":"string"},"metadata":{"additionalProperties":true,"description":"Flexible metadata for business data","type":"object"},"name":{"type":"string"},"title":{"type":"string"}},"type":"object"},"app.VCSConnection":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"github_account_id":{"type":"string"},"github_account_name":{"type":"string"},"github_install_id":{"type":"string"},"id":{"type":"string"},"updated_at":{"type":"string"},"vcs_connection_commit":{"items":{"$ref":"#/components/schemas/app.VCSConnectionCommit"},"type":"array"}},"type":"object"},"app.VCSConnectionCommit":{"properties":{"author_email":{"type":"string"},"author_name":{"type":"string"},"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"sha":{"type":"string"},"updated_at":{"type":"string"},"vcs_connection_id":{"type":"string"}},"type":"object"},"app.Waitlist":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"org_name":{"type":"string"},"updated_at":{"type":"string"}},"type":"object"},"app.Workflow":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"execution_time":{"type":"integer"},"finished":{"type":"boolean"},"finished_at":{"type":"string"},"id":{"type":"string"},"install_action_workflow_runs":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"},"install_deploys":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"},"install_sandbox_runs":{"items":{"$ref":"#/components/schemas/app.InstallSandboxRun"},"type":"array"},"links":{"additionalProperties":{},"type":"object"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"plan_only":{"type":"boolean"},"role":{"type":"string"},"started_at":{"type":"string"},"status":{"$ref":"#/components/schemas/app.CompositeStatus"},"step_error_behavior":{"description":"DEPRECATED: for now we always abort on step errors","type":"string"},"steps":{"description":"steps represent each piece of the workflow","items":{"$ref":"#/components/schemas/app.WorkflowStep"},"type":"array"},"type":{"$ref":"#/components/schemas/app.WorkflowType"},"updated_at":{"type":"string"}},"type":"object"},"app.WorkflowStep":{"properties":{"approval":{"$ref":"#/components/schemas/app.WorkflowStepApproval"},"created_at":{"type":"string"},"created_by":{"$ref":"#/components/schemas/app.Account"},"created_by_id":{"type":"string"},"execution_time":{"type":"integer"},"execution_type":{"$ref":"#/components/schemas/app.WorkflowStepExecutionType"},"finished":{"type":"boolean"},"finished_at":{"type":"string"},"group_idx":{"description":"to group steps which belong to same logical group, eg, plan/apply","type":"integer"},"group_retry_idx":{"description":"counter for every retry attempted on a group","type":"integer"},"id":{"type":"string"},"idx":{"type":"integer"},"install_workflow_id":{"description":"DEPRECATED: this is the install workflow ID, which is now the workflow ID.","type":"string"},"links":{"additionalProperties":{},"type":"object"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"policy_validation":{"$ref":"#/components/schemas/app.WorkflowStepPolicyValidation"},"retried":{"type":"boolean"},"retryable":{"type":"boolean"},"skippable":{"type":"boolean"},"started_at":{"type":"string"},"status":{"$ref":"#/components/schemas/app.CompositeStatus"},"step_target_id":{"description":"the following fields are set _once_ a step is in flight, and are orchestrated via the step's signal.\n\nthis is a polymorphic gorm relationship to one of the following objects:\n\ninstall_cloudformation_stack\ninstall_sandbox_run\ninstall_runner_update\ninstall_deploy\ninstall_action_workflow_run (can be many of these)","type":"string"},"step_target_type":{"type":"string"},"updated_at":{"type":"string"},"workflow_id":{"description":"Fields that are de-nested at read time using AfterQuery","type":"string"}},"type":"object"},"app.WorkflowStepApproval":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"installWorkflowStep":{"$ref":"#/components/schemas/app.WorkflowStep"},"installWorkflowStepID":{"description":"the step that this approval belongs too","type":"string"},"owner_id":{"type":"string"},"owner_type":{"type":"string"},"response":{"additionalProperties":{"type":"string"},"type":"object"},"runner_job":{"$ref":"#/components/schemas/app.RunnerJob"},"runner_job_id":{"description":"the runner job where this approval was created","type":"string"},"type":{"$ref":"#/components/schemas/app.WorkflowStepApprovalType"},"updated_at":{"type":"string"},"workflow_step":{"$ref":"#/components/schemas/app.WorkflowStep"},"workflow_step_id":{"description":"afterquery","type":"string"}},"type":"object"},"app.WorkflowStepApprovalType":{"enum":["noop","approve-all","terraform_plan","kubernetes_manifest_approval","helm_approval"],"type":"string"},"app.WorkflowStepExecutionType":{"enum":["system","user","approval","skipped","hidden"],"type":"string"},"app.WorkflowStepPolicyValidation":{"properties":{"created_at":{"type":"string"},"created_by_id":{"type":"string"},"id":{"type":"string"},"install_workflow_step_id":{"description":"install workflow step is the install step that this was performed within","type":"string"},"response":{"description":"response is the kyverno response (deprecated: use Reports for detailed results)","type":"string"},"runner_job_id":{"description":"runnerJobID is the runner job that this was performed within","type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/app.CompositeStatus"}],"description":"status denotes whether this passed, or whether it failed the job."},"updated_at":{"type":"string"}},"type":"object"},"app.WorkflowStepResponseType":{"enum":["deny","approve","deny-skip-current","deny-skip-current-and-dependents","retry","auto-approve"],"type":"string"},"app.WorkflowType":{"enum":["provision","deprovision","deprovision_sandbox","manual_deploy","input_update","deploy_components","teardown_component","teardown_components","reprovision_sandbox","drift_run_reprovision_sandbox","action_workflow_run","sync_secrets","drift_run","app_branches_manual_update","app_branches_config_repo_update","app_branches_component_repo_update","reprovision"],"type":"string"},"config.AppPolicyEngine":{"enum":["kyverno","opa"],"type":"string"},"config.AppPolicyType":{"enum":["kubernetes_cluster","terraform_module","helm_chart","kubernetes_manifest","docker_build","container_image","sandbox"],"type":"string"},"config.CustomNestedStack":{"properties":{"contents":{"type":"string"},"contents_hash":{"type":"string"},"index":{"type":"integer"},"name":{"type":"string"},"parameters":{"additionalProperties":{"type":"string"},"type":"object"},"template_url":{"type":"string"}},"type":"object"},"config.HelmRepoConfig":{"properties":{"chart":{"type":"string"},"repoURL":{"type":"string"},"version":{"type":"string"}},"type":"object"},"configs.OCIRegistryAuth":{"properties":{"password":{"type":"string"},"username":{"type":"string"}},"type":"object"},"configs.OCIRegistryRepository":{"properties":{"acrauth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"},"ecrauth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"loginServer":{"type":"string"},"ociauth":{"$ref":"#/components/schemas/configs.OCIRegistryAuth"},"plugin":{"type":"string"},"region":{"type":"string"},"registryType":{"$ref":"#/components/schemas/configs.OCIRegistryType"},"repository":{"description":"based on the type of access, either the repository (ecr) or login server (acr) will be provided.","type":"string"}},"type":"object"},"configs.OCIRegistryType":{"enum":["ecr","acr","private_oci","public_oci"],"type":"string"},"credentials.AssumeRoleConfig":{"properties":{"role_arn":{"type":"string"},"session_duration_seconds":{"type":"integer"},"session_name":{"type":"string"},"two_step_config":{"allOf":[{"$ref":"#/components/schemas/iam.TwoStepConfig"}],"description":"configuration for two stepping before assuming this role"},"use_github_oidc":{"type":"boolean"}},"required":["role_arn","session_name"],"type":"object"},"credentials.ServicePrincipalCredentials":{"properties":{"subscription_id":{"type":"string"},"subscription_tenant_id":{"type":"string"}},"type":"object"},"credentials.StaticCredentials":{"properties":{"access_key_id":{"type":"string"},"secret_access_key":{"type":"string"},"session_token":{"type":"string"}},"required":["access_key_id","secret_access_key","session_token"],"type":"object"},"generics.NullTime":{"properties":{"time":{"type":"string"},"valid":{"description":"Valid is true if Time is not NULL","type":"boolean"}},"type":"object"},"github.Match":{"properties":{"indices":{"items":{"type":"integer"},"type":"array"},"text":{"type":"string"}},"type":"object"},"github.Plan":{"properties":{"collaborators":{"type":"integer"},"filled_seats":{"type":"integer"},"name":{"type":"string"},"private_repos":{"type":"integer"},"seats":{"type":"integer"},"space":{"type":"integer"}},"type":"object"},"github.TextMatch":{"properties":{"fragment":{"type":"string"},"matches":{"items":{"$ref":"#/components/schemas/github.Match"},"type":"array"},"object_type":{"type":"string"},"object_url":{"type":"string"},"property":{"type":"string"}},"type":"object"},"github.Timestamp":{"properties":{"time.Time":{"type":"string"}},"type":"object"},"github.User":{"properties":{"avatar_url":{"type":"string"},"bio":{"type":"string"},"blog":{"type":"string"},"collaborators":{"type":"integer"},"company":{"type":"string"},"created_at":{"$ref":"#/components/schemas/github.Timestamp"},"disk_usage":{"type":"integer"},"email":{"type":"string"},"events_url":{"type":"string"},"followers":{"type":"integer"},"followers_url":{"type":"string"},"following":{"type":"integer"},"following_url":{"type":"string"},"gists_url":{"type":"string"},"gravatar_id":{"type":"string"},"hireable":{"type":"boolean"},"html_url":{"type":"string"},"id":{"type":"integer"},"ldap_dn":{"type":"string"},"location":{"type":"string"},"login":{"type":"string"},"name":{"type":"string"},"node_id":{"type":"string"},"organizations_url":{"type":"string"},"owned_private_repos":{"type":"integer"},"permissions":{"additionalProperties":{"type":"boolean"},"description":"Permissions and RoleName identify the permissions and role that a user has on a given\nrepository. These are only populated when calling Repositories.ListCollaborators.","type":"object"},"plan":{"$ref":"#/components/schemas/github.Plan"},"private_gists":{"type":"integer"},"public_gists":{"type":"integer"},"public_repos":{"type":"integer"},"received_events_url":{"type":"string"},"repos_url":{"type":"string"},"role_name":{"type":"string"},"site_admin":{"type":"boolean"},"starred_url":{"type":"string"},"subscriptions_url":{"type":"string"},"suspended_at":{"$ref":"#/components/schemas/github.Timestamp"},"text_matches":{"description":"TextMatches is only populated from search results that request text matches\nSee: search.go and https://docs.github.com/en/rest/search/#text-match-metadata","items":{"$ref":"#/components/schemas/github.TextMatch"},"type":"array"},"total_private_repos":{"type":"integer"},"twitter_username":{"type":"string"},"two_factor_authentication":{"type":"boolean"},"type":{"type":"string"},"updated_at":{"$ref":"#/components/schemas/github.Timestamp"},"url":{"description":"API URLs","type":"string"}},"type":"object"},"github_com_nuonco_nuon_pkg_aws_credentials.Config":{"properties":{"assume_role":{"$ref":"#/components/schemas/credentials.AssumeRoleConfig"},"cache_id":{"description":"when cache ID is set, these credentials will be reused, up to the duration of the sessionTimeout (or default)","type":"string"},"profile":{"description":"If profile is provided, we'll use that profile over the default credentials","type":"string"},"region":{"type":"string"},"static":{"$ref":"#/components/schemas/credentials.StaticCredentials"},"use_default":{"type":"boolean"}},"type":"object"},"github_com_nuonco_nuon_pkg_azure_credentials.Config":{"properties":{"service_principal":{"$ref":"#/components/schemas/credentials.ServicePrincipalCredentials"},"use_default":{"type":"boolean"}},"type":"object"},"github_com_nuonco_nuon_pkg_types_state.State":{"properties":{"actions":{"$ref":"#/components/schemas/state.ActionsState"},"app":{"$ref":"#/components/schemas/state.AppState"},"cloud_account":{"$ref":"#/components/schemas/state.CloudAccount"},"components":{"additionalProperties":{},"type":"object"},"domain":{"$ref":"#/components/schemas/state.DomainState"},"id":{"type":"string"},"inputs":{"$ref":"#/components/schemas/state.InputsState"},"install":{"allOf":[{"$ref":"#/components/schemas/state.InstallState"}],"description":"NOTE: for backwards compatibility, these are remaining in place."},"install_stack":{"$ref":"#/components/schemas/state.InstallStackState"},"name":{"type":"string"},"org":{"$ref":"#/components/schemas/state.OrgState"},"runner":{"$ref":"#/components/schemas/state.RunnerState"},"sandbox":{"$ref":"#/components/schemas/state.SandboxState"},"secrets":{"$ref":"#/components/schemas/state.SecretsState"},"stale_at":{"description":"loaded from the database but not part of the state itself","type":"string"}},"type":"object"},"helpers.CreateInstallConfigParams":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"}},"type":"object"},"helpers.InstallMetadata":{"properties":{"managed_by":{"type":"string"}},"type":"object"},"iam.StaticCredentials":{"properties":{"access_key_id":{"type":"string"},"secret_access_key":{"type":"string"},"session_token":{"type":"string"}},"type":"object"},"iam.TwoStepConfig":{"properties":{"iam_role_arn":{"type":"string"},"src_iam_role_arn":{"type":"string"},"src_static_credentials":{"allOf":[{"$ref":"#/components/schemas/iam.StaticCredentials"}],"description":"Root Credentials"}},"type":"object"},"kube.ClusterInfo":{"properties":{"aws_auth":{"allOf":[{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"}],"description":"If either an AWS auth or Azure auth is passed in, we will automatically use it to resolve credentials and set\nthem in the environment."},"azure_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"},"ca_data":{"description":"CAData is the base64 encoded public certificate","type":"string"},"endpoint":{"description":"Endpoint is the URL of the k8s api server","type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"ID is the ID of the EKS cluster","type":"string"},"inline":{"description":"If this is set, we will _not_ use aws-iam-authenticator, but rather inline create the token","type":"boolean"},"kube_config":{"description":"KubeConfig will override the kube config, and be parsed instead of generating a new one","type":"string"},"trusted_role_arn":{"description":"TrustedRoleARN is the arn of the role that should be assumed to interact with the cluster\nNOTE(JM): we are deprecating this","type":"string"}},"type":"object"},"outputs.SecretSyncOutput":{"properties":{"arn":{"type":"string"},"exists":{"type":"boolean"},"kubernetes_key":{"type":"string"},"kubernetes_name":{"type":"string"},"kubernetes_namespace":{"type":"string"},"length":{"type":"integer"},"name":{"type":"string"},"timestamp":{"type":"string"}},"type":"object"},"permissions.Permission":{"enum":["unknown","all","create","read","update","delete"],"type":"string"},"permissions.Set":{"additionalProperties":{"$ref":"#/components/schemas/permissions.Permission"},"type":"object"},"plantypes.ActionWorkflowRunPlan":{"properties":{"attrs":{"additionalProperties":{"type":"string"},"type":"object"},"aws_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"builtin_env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"cluster_info":{"allOf":[{"$ref":"#/components/schemas/kube.ClusterInfo"}],"description":"optional fields based on the configuration"},"id":{"type":"string"},"install_id":{"type":"string"},"override_env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"steps":{"items":{"$ref":"#/components/schemas/plantypes.ActionWorkflowRunStepPlan"},"type":"array"}},"type":"object"},"plantypes.ActionWorkflowRunStepPlan":{"properties":{"attrs":{"additionalProperties":{"type":"string"},"type":"object"},"git_source":{"$ref":"#/components/schemas/plantypes.GitSource"},"interpolated_command":{"type":"string"},"interpolated_env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"interpolated_inline_contents":{"type":"string"},"run_id":{"type":"string"}},"type":"object"},"plantypes.BuildPlan":{"properties":{"component_build_id":{"type":"string"},"component_id":{"type":"string"},"container_image_pull_plan":{"$ref":"#/components/schemas/plantypes.ContainerImagePullPlan"},"docker_build_plan":{"$ref":"#/components/schemas/plantypes.DockerBuildPlan"},"dst_registry":{"$ref":"#/components/schemas/configs.OCIRegistryRepository"},"dst_tag":{"type":"string"},"git_source":{"$ref":"#/components/schemas/plantypes.GitSource"},"helm_build_plan":{"$ref":"#/components/schemas/plantypes.HelmBuildPlan"},"kubernetes_manifest_build_plan":{"$ref":"#/components/schemas/plantypes.KubernetesManifestBuildPlan"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"terraform_build_plan":{"$ref":"#/components/schemas/plantypes.TerraformBuildPlan"}},"required":["dst_registry","dst_tag"],"type":"object"},"plantypes.CompositePlan":{"properties":{"action_workflow_run_plan":{"$ref":"#/components/schemas/plantypes.ActionWorkflowRunPlan"},"build_plan":{"$ref":"#/components/schemas/plantypes.BuildPlan"},"deploy_plan":{"$ref":"#/components/schemas/plantypes.DeployPlan"},"fetch_image_metadata_plan":{"$ref":"#/components/schemas/plantypes.FetchImageMetadataPlan"},"plan_auth":{"allOf":[{"$ref":"#/components/schemas/plantypes.PlanAuth"}],"description":"Auth for cloud providers"},"sandbox_run_plan":{"$ref":"#/components/schemas/plantypes.SandboxRunPlan"},"sync_oci_plan":{"$ref":"#/components/schemas/plantypes.SyncOCIPlan"},"sync_secrets_plan":{"$ref":"#/components/schemas/plantypes.SyncSecretsPlan"}},"type":"object"},"plantypes.ContainerImagePullPlan":{"properties":{"image":{"type":"string"},"repo_config":{"$ref":"#/components/schemas/configs.OCIRegistryRepository"},"tag":{"type":"string"}},"type":"object"},"plantypes.DeployPlan":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"apply_plan_contents":{"description":"The following field is for applying a plan that is already save","type":"string"},"apply_plan_display":{"description":"This field is for storing a human legible plan or corollary representation","type":"string"},"component_id":{"type":"string"},"component_name":{"type":"string"},"helm":{"$ref":"#/components/schemas/plantypes.HelmDeployPlan"},"install_id":{"type":"string"},"kubernetes_manifest":{"$ref":"#/components/schemas/plantypes.KubernetesManifestDeployPlan"},"noop":{"$ref":"#/components/schemas/plantypes.NoopDeployPlan"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"src_registry":{"$ref":"#/components/schemas/configs.OCIRegistryRepository"},"src_tag":{"type":"string"},"terraform":{"$ref":"#/components/schemas/plantypes.TerraformDeployPlan"}},"required":["src_registry","src_tag"],"type":"object"},"plantypes.DockerBuildPlan":{"properties":{"build_args":{"additionalProperties":{"type":"string"},"type":"object"},"context":{"type":"string"},"dockerfile":{"type":"string"},"target":{"type":"string"}},"type":"object"},"plantypes.FetchImageMetadataPlan":{"properties":{"include_attestation_layers":{"type":"boolean"},"include_attestation_manifests":{"type":"boolean"},"include_index":{"description":"Options for metadata fetching","type":"boolean"},"registry":{"allOf":[{"$ref":"#/components/schemas/configs.OCIRegistryRepository"}],"description":"Registry configuration for the source image"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"tag":{"description":"Tag is the image tag to fetch metadata for","type":"string"}},"required":["registry","tag"],"type":"object"},"plantypes.GitSource":{"properties":{"path":{"type":"string"},"recurse_submodules":{"type":"boolean"},"ref":{"type":"string"},"url":{"type":"string"}},"required":["path","ref","url"],"type":"object"},"plantypes.HelmBuildPlan":{"properties":{"helmRepoConfig":{"$ref":"#/components/schemas/config.HelmRepoConfig"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"values":{"items":{"$ref":"#/components/schemas/plantypes.HelmValue"},"type":"array"},"valuesFiles":{"items":{"type":"string"},"type":"array"}},"type":"object"},"plantypes.HelmDeployPlan":{"properties":{"cluster_info":{"$ref":"#/components/schemas/kube.ClusterInfo"},"create_namespace":{"type":"boolean"},"helm_chart_id":{"type":"string"},"name":{"description":"NOTE(jm): these fields should probably just come from the app config, however we keep them around for\ndebuggability","type":"string"},"namespace":{"type":"string"},"storage_driver":{"type":"string"},"take_ownership":{"type":"boolean"},"values":{"items":{"$ref":"#/components/schemas/plantypes.HelmValue"},"type":"array"},"values_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"plantypes.HelmSandboxMode":{"properties":{"plan_contents":{"type":"string"},"plan_display_contents":{"type":"string"}},"type":"object"},"plantypes.HelmValue":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"plantypes.KubernetesManifestBuildPlan":{"properties":{"inline_manifest":{"description":"InlineManifest contains the raw manifest YAML (for inline source type)","type":"string"},"kustomize_config":{"allOf":[{"$ref":"#/components/schemas/plantypes.KustomizeBuildConfig"}],"description":"KustomizeConfig contains additional kustomize build options"},"kustomize_path":{"description":"KustomizePath is the path to the kustomization directory (for kustomize source type)\nRelative to the repository root","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Labels for the OCI artifact","type":"object"},"source_type":{"description":"SourceType indicates how manifests are sourced: \"inline\" or \"kustomize\"","type":"string"}},"type":"object"},"plantypes.KubernetesManifestDeployPlan":{"properties":{"cluster_info":{"$ref":"#/components/schemas/kube.ClusterInfo"},"manifest":{"description":"Manifest is populated at runtime from the OCI artifact.\nThis field is no longer set during plan creation - it's populated by the runner\nafter pulling the OCI artifact during Initialize().","type":"string"},"namespace":{"type":"string"},"oci_artifact":{"allOf":[{"$ref":"#/components/schemas/plantypes.OCIArtifactReference"}],"description":"OCIArtifact reference (set during plan creation, used by runner to pull manifest)"}},"type":"object"},"plantypes.KubernetesSandboxMode":{"properties":{"plan_contents":{"type":"string"},"plan_display_contents":{"type":"string"}},"type":"object"},"plantypes.KubernetesSecretSync":{"properties":{"format":{"description":"NOTE(jm): this should probably come from the app config, but for now we just use string parsing to avoid\nupdating the runner job and save time.","type":"string"},"key_name":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"secret_arn":{"type":"string"},"secret_name":{"description":"the name of the secret from the config","type":"string"}},"type":"object"},"plantypes.KustomizeBuildConfig":{"properties":{"enable_helm":{"description":"EnableHelm enables Helm chart inflation during kustomize build","type":"boolean"},"load_restrictor":{"description":"LoadRestrictor controls file loading: \"none\" or \"rootOnly\" (default)","type":"string"},"patches":{"description":"Patches are additional patch files to apply after kustomize build","items":{"type":"string"},"type":"array"}},"type":"object"},"plantypes.NoopDeployPlan":{"type":"object"},"plantypes.OCIArtifactReference":{"properties":{"digest":{"description":"Digest is the immutable artifact digest (e.g., sha256:abc123...)","type":"string"},"tag":{"description":"Tag is the artifact tag (typically the build ID)","type":"string"},"url":{"description":"URL is the full artifact URL (e.g., registry.nuon.co/org_id/app_id)","type":"string"}},"type":"object"},"plantypes.PlanAuth":{"properties":{"aws_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"azure_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"}},"type":"object"},"plantypes.SandboxMode":{"properties":{"enabled":{"type":"boolean"},"helm":{"$ref":"#/components/schemas/plantypes.HelmSandboxMode"},"kubernetes_manifest":{"$ref":"#/components/schemas/plantypes.KubernetesSandboxMode"},"outputs":{"additionalProperties":{},"type":"object"},"terraform":{"$ref":"#/components/schemas/plantypes.TerraformSandboxMode"}},"type":"object"},"plantypes.SandboxRunPlan":{"properties":{"app_config_id":{"type":"string"},"app_id":{"type":"string"},"apply_plan_contents":{"description":"The following field is for applying a plan that is already saved","type":"string"},"apply_plan_display":{"description":"This field is for storing a human legible plan or corollary representation","items":{"type":"integer"},"type":"array"},"aws_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"azure_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"git_source":{"$ref":"#/components/schemas/plantypes.GitSource"},"hooks":{"$ref":"#/components/schemas/plantypes.TerraformDeployHooks"},"install_id":{"type":"string"},"local_archive":{"$ref":"#/components/schemas/plantypes.TerraformLocalArchive"},"policies":{"additionalProperties":{"type":"string"},"type":"object"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"state":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_types_state.State"},"terraform_backend":{"$ref":"#/components/schemas/plantypes.TerraformBackend"},"vars":{"additionalProperties":{},"type":"object"},"vars_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"plantypes.SyncOCIPlan":{"properties":{"dst_registry":{"$ref":"#/components/schemas/configs.OCIRegistryRepository"},"dst_tag":{"type":"string"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"},"src_registry":{"$ref":"#/components/schemas/configs.OCIRegistryRepository"},"src_tag":{"type":"string"}},"required":["dst_registry","dst_tag","src_registry","src_tag"],"type":"object"},"plantypes.SyncSecretsPlan":{"properties":{"aws_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"azure_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"},"cluster_info":{"$ref":"#/components/schemas/kube.ClusterInfo"},"kubernetes_secrets":{"items":{"$ref":"#/components/schemas/plantypes.KubernetesSecretSync"},"type":"array"},"sandbox_mode":{"$ref":"#/components/schemas/plantypes.SandboxMode"}},"type":"object"},"plantypes.TerraformBackend":{"properties":{"workspaceID":{"type":"string"}},"required":["workspaceID"],"type":"object"},"plantypes.TerraformBuildPlan":{"properties":{"labels":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"plantypes.TerraformDeployHooks":{"properties":{"enabled":{"type":"boolean"},"envVars":{"additionalProperties":{"type":"string"},"type":"object"},"runAuth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"}},"type":"object"},"plantypes.TerraformDeployPlan":{"properties":{"aws_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config"},"azure_auth":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config"},"cluster_info":{"$ref":"#/components/schemas/kube.ClusterInfo"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"hooks":{"$ref":"#/components/schemas/plantypes.TerraformDeployHooks"},"plan_json":{"items":{"type":"integer"},"type":"array"},"policies":{"additionalProperties":{"type":"string"},"type":"object"},"state":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_types_state.State"},"terraform_backend":{"$ref":"#/components/schemas/plantypes.TerraformBackend"},"vars":{"additionalProperties":{},"type":"object"},"vars_files":{"items":{"type":"string"},"type":"array"}},"type":"object"},"plantypes.TerraformLocalArchive":{"properties":{"local_archive":{"type":"string"}},"type":"object"},"plantypes.TerraformSandboxMode":{"properties":{"plan_contents":{"description":"create the plan output","type":"string"},"plan_display_contents":{"type":"string"},"state_json":{"description":"needs to be the outputs of `terraform show -json`","items":{"type":"integer"},"type":"array"},"workspace_id":{"type":"string"}},"type":"object"},"refs.Ref":{"properties":{"input":{"type":"string"},"name":{"type":"string"},"type":{"$ref":"#/components/schemas/refs.RefType"},"value":{"type":"string"}},"type":"object"},"refs.RefType":{"enum":["sandbox","install_stack","component","inputs","install_inputs","secrets","actions"],"type":"string"},"service.AppAWSIAMPolicyConfig":{"properties":{"contents":{"type":"string"},"managed_policy_name":{"type":"string"},"name":{"type":"string"}},"type":"object"},"service.AppAWSIAMRoleConfig":{"properties":{"description":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"},"permissions_boundary":{"type":"string"},"policies":{"items":{"$ref":"#/components/schemas/service.AppAWSIAMPolicyConfig"},"minItems":1,"type":"array"}},"required":["description","display_name","name"],"type":"object"},"service.AppConfigTemplate":{"properties":{"content":{"type":"string"},"filename":{"type":"string"},"format":{"$ref":"#/components/schemas/app.AppConfigVersion"},"type":{"$ref":"#/components/schemas/service.AppConfigTemplateType"}},"type":"object"},"service.AppConfigTemplateType":{"enum":["aws-ecs","aws-ecs-byovpc","aws-eks","aws-eks-byovpc","azure-aks","flat","top-level","installer","runner","sandbox","inputs","terraform","terraformInfra","helm","docker-build","job","container-image","ecr-container-image"],"type":"string"},"service.AppGroupRequest":{"properties":{"description":{"type":"string"},"display_name":{"type":"string"},"index":{"type":"integer"}},"required":["description","display_name","index"],"type":"object"},"service.AppInputRequest":{"properties":{"default":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"group":{"type":"string"},"index":{"type":"integer"},"internal":{"description":"New, optional fields","type":"boolean"},"required":{"type":"boolean"},"sensitive":{"type":"boolean"},"source":{"$ref":"#/components/schemas/app.AppInputSource"},"type":{"type":"string"}},"required":["description","display_name","group","index"],"type":"object"},"service.AppPolicyConfig":{"properties":{"components":{"items":{"type":"string"},"type":"array"},"contents":{"type":"string"},"description":{"type":"string"},"engine":{"$ref":"#/components/schemas/config.AppPolicyEngine"},"name":{"type":"string"},"type":{"$ref":"#/components/schemas/config.AppPolicyType"}},"required":["contents","type"],"type":"object"},"service.AppSecretConfig":{"properties":{"auto_generate":{"type":"boolean"},"default":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"format":{"type":"string"},"kubernetes_secret_name":{"type":"string"},"kubernetes_secret_namespace":{"type":"string"},"kubernetes_sync":{"type":"boolean"},"name":{"type":"string"},"required":{"type":"boolean"}},"required":["description","display_name","name"],"type":"object"},"service.AuthMeIdentity":{"properties":{"name":{"type":"string"},"picture":{"type":"string"},"provider_type":{"$ref":"#/components/schemas/app.ProviderType"}},"type":"object"},"service.AuthMeResponse":{"properties":{"account_type":{"$ref":"#/components/schemas/app.AccountType"},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"identities":{"items":{"$ref":"#/components/schemas/service.AuthMeIdentity"},"type":"array"},"org_ids":{"description":"ReadOnly Fields","items":{"type":"string"},"type":"array"},"permissions":{"$ref":"#/components/schemas/permissions.Set"},"roles":{"items":{"$ref":"#/components/schemas/app.Role"},"type":"array"},"subject":{"type":"string"},"updated_at":{"type":"string"},"user_journeys":{"items":{"$ref":"#/components/schemas/app.UserJourney"},"type":"array"}},"type":"object"},"service.AvailableRole":{"properties":{"arn":{"type":"string"},"name":{"type":"string"},"role_type":{"type":"string"}},"type":"object"},"service.AvailableRolesResponse":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/service.AvailableRole"},"type":"array"}},"type":"object"},"service.BuildAllComponentsRequest":{"type":"object"},"service.CLIConfig":{"properties":{"auth_audience":{"type":"string"},"auth_client_id":{"type":"string"},"auth_domain":{"type":"string"},"dashboard_url":{"type":"string"},"nuon_auth_enabled":{"type":"boolean"},"root_domain":{"type":"string"}},"type":"object"},"service.CancelRunnerJobRequest":{"type":"object"},"service.ComponentChildren":{"properties":{"children":{"items":{"$ref":"#/components/schemas/app.Component"},"type":"array"}},"type":"object"},"service.ConnectedGithubVCSActionWorkflowConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"gitRef":{"type":"string"},"repo":{"type":"string"}},"required":["directory","repo"],"type":"object"},"service.ConnectedGithubVCSConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"gitRef":{"type":"string"},"repo":{"type":"string"}},"required":["directory","repo"],"type":"object"},"service.ConnectedGithubVCSSandboxConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"gitRef":{"type":"string"},"repo":{"type":"string"}},"required":["directory","repo"],"type":"object"},"service.CreateActionWorkflowConfigRequest":{"properties":{"app_config_id":{"type":"string"},"break_glass_role_arn":{"type":"string"},"dependencies":{"items":{"type":"string"},"type":"array"},"references":{"items":{"type":"string"},"type":"array"},"role":{"type":"string"},"steps":{"items":{"$ref":"#/components/schemas/service.CreateActionWorkflowConfigStepRequest"},"type":"array"},"timeout":{"type":"integer"},"triggers":{"items":{"$ref":"#/components/schemas/service.CreateActionWorkflowConfigTriggerRequest"},"type":"array"}},"required":["app_config_id","steps","triggers"],"type":"object"},"service.CreateActionWorkflowConfigStepRequest":{"properties":{"command":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSActionWorkflowConfigRequest"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"inline_contents":{"type":"string"},"name":{"type":"string"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSActionWorkflowConfigRequest"},"references":{"items":{"type":"string"},"type":"array"}},"required":["name"],"type":"object"},"service.CreateActionWorkflowConfigTriggerRequest":{"properties":{"component_name":{"type":"string"},"cron_schedule":{"type":"string"},"index":{"type":"integer"},"type":{"$ref":"#/components/schemas/app.ActionWorkflowTriggerType"}},"required":["type"],"type":"object"},"service.CreateAdHocActionRequest":{"properties":{"command":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"inline_contents":{"type":"string"},"name":{"maxLength":255,"type":"string"},"role":{"type":"string"},"timeout":{"maximum":3600,"minimum":1,"type":"integer"}},"type":"object"},"service.CreateAdHocActionResponse":{"properties":{"created_at":{"type":"string"},"id":{"type":"string"},"install_id":{"type":"string"},"status":{"$ref":"#/components/schemas/app.InstallActionWorkflowRunStatus"},"status_description":{"type":"string"},"trigger_type":{"$ref":"#/components/schemas/app.ActionWorkflowTriggerType"},"workflow_id":{"type":"string"}},"type":"object"},"service.CreateAppActionRequest":{"properties":{"name":{"type":"string"}},"type":"object"},"service.CreateAppActionWorkflowRequest":{"properties":{"name":{"type":"string"}},"type":"object"},"service.CreateAppBranchRequest":{"properties":{"connected_github_vcs_config_id":{"type":"string"},"name":{"minLength":1,"type":"string"}},"required":["connected_github_vcs_config_id","name"],"type":"object"},"service.CreateAppBreakGlassConfigRequest":{"properties":{"app_config_id":{"type":"string"},"roles":{"items":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"},"type":"array"}},"required":["app_config_id","roles"],"type":"object"},"service.CreateAppConfigRequest":{"properties":{"cli_version":{"type":"string"},"readme":{"description":"not required Readme","type":"string"}},"type":"object"},"service.CreateAppInputConfigRequest":{"properties":{"app_config_id":{"type":"string"},"groups":{"additionalProperties":{"$ref":"#/components/schemas/service.AppGroupRequest"},"type":"object"},"inputs":{"additionalProperties":{"$ref":"#/components/schemas/service.AppInputRequest"},"type":"object"}},"required":["groups","inputs"],"type":"object"},"service.CreateAppOperationRoleConfigRequest":{"properties":{"app_config_id":{"type":"string"},"rules":{"items":{"$ref":"#/components/schemas/service.OperationRoleRuleRequest"},"type":"array"}},"required":["app_config_id","rules"],"type":"object"},"service.CreateAppPermissionsConfigRequest":{"properties":{"app_config_id":{"type":"string"},"break_glass_roles":{"items":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"},"type":"array"},"custom_roles":{"items":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"},"type":"array"},"deprovision_role":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"},"maintenance_role":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"},"provision_role":{"$ref":"#/components/schemas/service.AppAWSIAMRoleConfig"}},"required":["app_config_id","deprovision_role","maintenance_role","provision_role"],"type":"object"},"service.CreateAppPoliciesConfigRequest":{"properties":{"app_config_id":{"type":"string"},"policies":{"items":{"$ref":"#/components/schemas/service.AppPolicyConfig"},"type":"array"}},"required":["app_config_id"],"type":"object"},"service.CreateAppRequest":{"properties":{"description":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"},"slack_webhook_url":{"type":"string"}},"required":["name"],"type":"object"},"service.CreateAppRunnerConfigRequest":{"properties":{"app_config_id":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"helm_driver":{"$ref":"#/components/schemas/app.AppRunnerConfigHelmDriverType"},"init_script_url":{"type":"string"},"type":{"$ref":"#/components/schemas/app.AppRunnerType"}},"required":["type"],"type":"object"},"service.CreateAppSandboxConfigRequest":{"properties":{"app_config_id":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSSandboxConfigRequest"},"drift_schedule":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSSandboxConfigRequest"},"references":{"items":{"type":"string"},"type":"array"},"terraform_version":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"variables_files":{"items":{"type":"string"},"type":"array"}},"required":["env_vars","terraform_version","variables"],"type":"object"},"service.CreateAppSecretRequest":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"service.CreateAppSecretsConfigRequest":{"properties":{"app_config_id":{"type":"string"},"secrets":{"items":{"$ref":"#/components/schemas/service.AppSecretConfig"},"type":"array"}},"required":["app_config_id"],"type":"object"},"service.CreateAppStackConfigRequest":{"properties":{"app_config_id":{"type":"string"},"custom_nested_stacks":{"items":{"$ref":"#/components/schemas/config.CustomNestedStack"},"type":"array"},"description":{"type":"string"},"name":{"type":"string"},"runner_nested_template_url":{"type":"string"},"type":{"$ref":"#/components/schemas/app.StackType"},"vpc_nested_template_url":{"type":"string"}},"required":["app_config_id","description","name","type"],"type":"object"},"service.CreateComponentBuildRequest":{"properties":{"git_ref":{"type":"string"},"use_latest":{"type":"boolean"}},"type":"object"},"service.CreateComponentReleaseRequest":{"properties":{"auto_build":{"type":"boolean"},"build_id":{"type":"string"},"install_ids":{"items":{"type":"string"},"type":"array"},"strategy":{"properties":{"delay":{"type":"string"},"installs_per_step":{"type":"integer"}},"type":"object"}},"type":"object"},"service.CreateComponentRequest":{"properties":{"dependencies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"var_name":{"type":"string"}},"required":["name"],"type":"object"},"service.CreateConnectionCallbackRequest":{"properties":{"github_install_id":{"type":"string"},"org_id":{"type":"string"}},"required":["github_install_id","org_id"],"type":"object"},"service.CreateConnectionRequest":{"properties":{"github_install_id":{"type":"string"}},"required":["github_install_id"],"type":"object"},"service.CreateDockerBuildComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"build_args":{"items":{"type":"string"},"type":"array"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"checksum":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSConfigRequest"},"dependencies":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"dockerfile":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSConfigRequest"},"references":{"items":{"type":"string"},"type":"array"},"target":{"type":"string"}},"required":["dockerfile"],"type":"object"},"service.CreateExternalImageComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"aws_ecr_image_config":{"$ref":"#/components/schemas/service.awsECRImageConfigRequest"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"checksum":{"type":"string"},"dependencies":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"image_url":{"type":"string"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"references":{"items":{"type":"string"},"type":"array"},"tag":{"type":"string"}},"required":["image_url","tag"],"type":"object"},"service.CreateHelmComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"chart_name":{"maxLength":62,"minLength":5,"type":"string"},"checksum":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSConfigRequest"},"dependencies":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"drift_schedule":{"type":"string"},"helm_repo_config":{"$ref":"#/components/schemas/service.HelmRepoConfigRequest"},"namespace":{"type":"string"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSConfigRequest"},"references":{"items":{"type":"string"},"type":"array"},"storage_driver":{"type":"string"},"take_ownership":{"type":"boolean"},"values":{"additionalProperties":{"type":"string"},"type":"object"},"values_files":{"items":{"type":"string"},"type":"array"}},"required":["chart_name","values"],"type":"object"},"service.CreateInstallActionWorkflowRunRequest":{"properties":{"action_workflow_config_id":{"type":"string"},"role":{"type":"string"},"run_env_vars":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["action_workflow_config_id"],"type":"object"},"service.CreateInstallComponentDeployRequest":{"properties":{"build_id":{"type":"string"},"deploy_dependents":{"type":"boolean"},"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.CreateInstallConfigRequest":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"}},"type":"object"},"service.CreateInstallDeployRequest":{"properties":{"build_id":{"type":"string"},"deploy_dependents":{"type":"boolean"},"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.CreateInstallInputsRequest":{"properties":{"inputs":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["inputs"],"type":"object"},"service.CreateInstallRequest":{"properties":{"aws_account":{"properties":{"region":{"type":"string"}},"type":"object"},"azure_account":{"properties":{"location":{"type":"string"}},"type":"object"},"inputs":{"additionalProperties":{"type":"string"},"type":"object"},"install_config":{"$ref":"#/components/schemas/helpers.CreateInstallConfigParams"},"metadata":{"$ref":"#/components/schemas/helpers.InstallMetadata"},"name":{"type":"string"}},"required":["name"],"type":"object"},"service.CreateInstallV2Request":{"properties":{"app_id":{"type":"string"},"aws_account":{"properties":{"region":{"type":"string"}},"type":"object"},"azure_account":{"properties":{"location":{"type":"string"}},"type":"object"},"inputs":{"additionalProperties":{"type":"string"},"type":"object"},"install_config":{"$ref":"#/components/schemas/helpers.CreateInstallConfigParams"},"metadata":{"$ref":"#/components/schemas/helpers.InstallMetadata"},"name":{"type":"string"}},"required":["app_id","name"],"type":"object"},"service.CreateJobComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"args":{"items":{"type":"string"},"type":"array"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"checksum":{"type":"string"},"cmd":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"image_url":{"type":"string"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"references":{"items":{"type":"string"},"type":"array"},"tag":{"type":"string"}},"required":["image_url","tag"],"type":"object"},"service.CreateKubernetesManifestComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"checksum":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSConfigRequest"},"dependencies":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"drift_schedule":{"type":"string"},"kustomize":{"allOf":[{"$ref":"#/components/schemas/service.KustomizeConfigRequest"}],"description":"Kustomize configuration (mutually exclusive with Manifest)"},"manifest":{"description":"Inline manifest (mutually exclusive with Kustomize)","type":"string"},"namespace":{"type":"string"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSConfigRequest"},"references":{"items":{"type":"string"},"type":"array"}},"type":"object"},"service.CreateOrgInviteRequest":{"properties":{"email":{"type":"string"}},"required":["email"],"type":"object"},"service.CreateOrgRequest":{"properties":{"name":{"type":"string"},"use_sandbox_mode":{"description":"These fields are used to control the behaviour of the org.","type":"boolean"}},"required":["name"],"type":"object"},"service.CreateOrgUserRequest":{"properties":{"user_id":{"type":"string"}},"type":"object"},"service.CreateTerraformModuleComponentConfigRequest":{"properties":{"app_config_id":{"type":"string"},"build_timeout":{"description":"Duration string for build operations (e.g., \"30m\", \"1h\")","type":"string"},"checksum":{"type":"string"},"connected_github_vcs_config":{"$ref":"#/components/schemas/service.ConnectedGithubVCSConfigRequest"},"dependencies":{"items":{"type":"string"},"type":"array"},"deploy_timeout":{"description":"Duration string for deploy operations (e.g., \"30m\", \"1h\")","type":"string"},"drift_schedule":{"type":"string"},"env_vars":{"additionalProperties":{"type":"string"},"type":"object"},"operation_roles":{"additionalProperties":{"type":"string"},"type":"object"},"public_git_vcs_config":{"$ref":"#/components/schemas/service.PublicGitVCSConfigRequest"},"references":{"items":{"type":"string"},"type":"array"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"variables_files":{"items":{"type":"string"},"type":"array"},"version":{"type":"string"}},"required":["env_vars","variables"],"type":"object"},"service.CreateTerraformWorkspaceRequest":{"properties":{"owner_id":{"type":"string"},"owner_type":{"type":"string"}},"required":["owner_id","owner_type"],"type":"object"},"service.CreateUserJourneyRequest":{"properties":{"name":{"type":"string"},"steps":{"items":{"$ref":"#/components/schemas/service.CreateUserJourneyStepReq"},"type":"array"},"title":{"type":"string"}},"required":["name","steps","title"],"type":"object"},"service.CreateUserJourneyStepReq":{"properties":{"name":{"type":"string"},"title":{"type":"string"}},"required":["name","title"],"type":"object"},"service.CreateWorkflowStepApprovalResponseRequest":{"properties":{"note":{"type":"string"},"response_type":{"$ref":"#/components/schemas/app.WorkflowStepResponseType"}},"type":"object"},"service.CreateWorkflowStepApprovalResponseResponse":{"properties":{"id":{"type":"string"},"note":{"type":"string"},"type":{"type":"string"}},"type":"object"},"service.DeployInstallComponentsRequest":{"properties":{"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.DeprovisionInstallRequest":{"properties":{"plan_only":{"type":"boolean"}},"type":"object"},"service.DeprovisionInstallSandboxRequest":{"properties":{"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.ForceShutdownRequest":{"type":"object"},"service.ForgetInstallComponentRequest":{"type":"object"},"service.ForgetInstallRequest":{"type":"object"},"service.GracefulShutdownRequest":{"type":"object"},"service.HelmRepoConfigRequest":{"properties":{"chart":{"type":"string"},"repo_url":{"type":"string"},"version":{"type":"string"}},"required":["chart","repo_url"],"type":"object"},"service.InstallPhoneHomeRequest":{"additionalProperties":{},"type":"object"},"service.KustomizeConfigRequest":{"properties":{"enable_helm":{"type":"boolean"},"load_restrictor":{"type":"string"},"patches":{"items":{"type":"string"},"type":"array"},"path":{"type":"string"}},"type":"object"},"service.LatestRunnerHeartBeats":{"additionalProperties":{"$ref":"#/components/schemas/app.LatestRunnerHeartBeat"},"type":"object"},"service.MngFetchTokenRequest":{"type":"object"},"service.MngShutDownRequest":{"type":"object"},"service.MngUpdateRequest":{"type":"object"},"service.MngVMShutDownRequest":{"type":"object"},"service.OperationRoleRuleRequest":{"properties":{"operation":{"$ref":"#/components/schemas/app.OperationType"},"principal":{"type":"string"},"role":{"type":"string"}},"required":["operation","principal","role"],"type":"object"},"service.PatchInstallConfigParams":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"}},"type":"object"},"service.PruneTokensResponse":{"properties":{"invalidated_count":{"type":"integer"}},"type":"object"},"service.PublicGitVCSActionWorkflowConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"repo":{"type":"string"}},"required":["branch","directory","repo"],"type":"object"},"service.PublicGitVCSConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"repo":{"type":"string"}},"required":["branch","directory","repo"],"type":"object"},"service.PublicGitVCSSandboxConfigRequest":{"properties":{"branch":{"type":"string"},"directory":{"type":"string"},"repo":{"type":"string"}},"required":["branch","directory","repo"],"type":"object"},"service.Readme":{"properties":{"original":{"type":"string"},"readme":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"service.RemoveOrgUserRequest":{"properties":{"user_id":{"type":"string"}},"type":"object"},"service.ReprovisionInstallRequest":{"properties":{"plan_only":{"type":"boolean"}},"type":"object"},"service.ReprovisionInstallSandboxRequest":{"properties":{"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.RetryWorkflowByIDRequest":{"properties":{"operation":{"description":"Retry indicates whether to retry the current step or not","type":"string"},"step_id":{"description":"StepID is the ID of the step to start the retry from","type":"string"}},"type":"object"},"service.RetryWorkflowByIDResponse":{"properties":{"workflow_id":{"type":"string"}},"type":"object"},"service.RetryWorkflowRequest":{"properties":{"operation":{"description":"Retry indicates whether to retry the current step or not","type":"string"},"step_id":{"description":"StepID is the ID of the step to start the retry from","type":"string"},"workflow_id":{"type":"string"}},"type":"object"},"service.RetryWorkflowResponse":{"properties":{"workflow_id":{"type":"string"}},"type":"object"},"service.RetryWorkflowStepRequest":{"properties":{"operation":{"description":"Retry indicates whether to retry the current step or not","type":"string"}},"type":"object"},"service.RunnerCardDetailsResponse":{"properties":{"latest_heart_beat":{"$ref":"#/components/schemas/app.RunnerHeartBeat"},"runner":{"$ref":"#/components/schemas/app.Runner"}},"type":"object"},"service.RunnerConnectionStatus":{"properties":{"connected":{"type":"boolean"},"latest_heartbeat_timestamp":{"type":"integer"}},"type":"object"},"service.SyncSecretsRequest":{"properties":{"plan_only":{"type":"boolean"}},"type":"object"},"service.TeardownInstallComponentRequest":{"properties":{"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.TeardownInstallComponentsRequest":{"properties":{"plan_only":{"type":"boolean"},"role":{"type":"string"}},"type":"object"},"service.UpdateActionWorkflowRequest":{"properties":{"name":{"type":"string"}},"type":"object"},"service.UpdateAppConfigInstallsRequest":{"properties":{"installIDs":{"items":{"type":"string"},"type":"array"},"updateAll":{"type":"boolean"}},"type":"object"},"service.UpdateAppConfigRequest":{"properties":{"component_ids":{"items":{"type":"string"},"type":"array"},"state":{"type":"string"},"status":{"$ref":"#/components/schemas/app.AppConfigStatus"},"status_description":{"type":"string"}},"type":"object"},"service.UpdateAppRequest":{"properties":{"config_directory":{"type":"string"},"config_repo":{"type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"},"slack_webhook_url":{"type":"string"}},"type":"object"},"service.UpdateComponentRequest":{"properties":{"dependencies":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"var_name":{"type":"string"}},"required":["name"],"type":"object"},"service.UpdateInstallConfigRequest":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"}},"type":"object"},"service.UpdateInstallInputsRequest":{"properties":{"inputs":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["inputs"],"type":"object"},"service.UpdateInstallRequest":{"properties":{"install_config":{"$ref":"#/components/schemas/service.PatchInstallConfigParams"},"metadata":{"$ref":"#/components/schemas/helpers.InstallMetadata"},"name":{"type":"string"}},"type":"object"},"service.UpdateOrgFeaturesRequest":{"properties":{"features":{"additionalProperties":{"type":"boolean"},"type":"object"}},"required":["features"],"type":"object"},"service.UpdateOrgRequest":{"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"service.UpdateRunnerSettingsRequest":{"properties":{"aws_max_instance_lifetime":{"maximum":31536000,"minimum":86400,"type":"integer"},"container_image_tag":{"type":"string"},"container_image_url":{"type":"string"},"org_awsiam_role_arn":{"type":"string"},"org_k8s_service_account_name":{"type":"string"},"runner_api_url":{"type":"string"}},"type":"object"},"service.UpdateUserJourneyStepRequest":{"properties":{"complete":{"type":"boolean"},"metadata":{"additionalProperties":true,"type":"object"}},"type":"object"},"service.UpdateWorkflowRequest":{"properties":{"approval_option":{"$ref":"#/components/schemas/app.InstallApprovalOption"}},"required":["approval_option"],"type":"object"},"service.VCSConnectionAccount":{"properties":{"id":{"type":"integer"},"login":{"type":"string"},"type":{"type":"string"}},"type":"object"},"service.VCSConnectionRepo":{"properties":{"default_branch":{"type":"string"},"description":{"type":"string"},"fork":{"type":"boolean"},"full_name":{"type":"string"},"html_url":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"private":{"type":"boolean"},"updated_at":{"type":"string"}},"type":"object"},"service.VCSConnectionReposResponse":{"properties":{"repositories":{"items":{"$ref":"#/components/schemas/service.VCSConnectionRepo"},"type":"array"},"total_count":{"type":"integer"}},"type":"object"},"service.VCSConnectionStatusResponse":{"properties":{"account":{"$ref":"#/components/schemas/service.VCSConnectionAccount"},"checked_at":{"type":"string"},"error":{"type":"string"},"github_install_id":{"type":"string"},"permissions":{"additionalProperties":{"type":"string"},"type":"object"},"repository_selection":{"type":"string"},"status":{"type":"string"},"suspended_at":{"type":"string"},"suspended_by":{"$ref":"#/components/schemas/github.User"}},"type":"object"},"service.WaitlistRequest":{"properties":{"org_name":{"type":"string"}},"required":["org_name"],"type":"object"},"service.awsECRImageConfigRequest":{"properties":{"aws_region":{"type":"string"},"iam_role_arn":{"type":"string"}},"type":"object"},"state.AWSCloudAccount":{"properties":{"region":{"type":"string"}},"type":"object"},"state.ActionWorkflowState":{"properties":{"id":{"type":"string"},"outputs":{"additionalProperties":{},"type":"object"},"populated":{"type":"boolean"},"status":{"type":"string"}},"type":"object"},"state.ActionsState":{"properties":{"populated":{"type":"boolean"},"workflows":{"additionalProperties":{"$ref":"#/components/schemas/state.ActionWorkflowState"},"type":"object"}},"type":"object"},"state.AppState":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"populated":{"type":"boolean"},"status":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"state.AzureCloudAccount":{"properties":{"location":{"type":"string"}},"type":"object"},"state.CloudAccount":{"properties":{"aws":{"$ref":"#/components/schemas/state.AWSCloudAccount"},"azure":{"$ref":"#/components/schemas/state.AzureCloudAccount"}},"type":"object"},"state.DomainState":{"properties":{"internal_domain":{"type":"string"},"populated":{"type":"boolean"},"public_domain":{"type":"string"}},"type":"object"},"state.InputsState":{"properties":{"inputs":{"additionalProperties":{"type":"string"},"type":"object"},"populated":{"type":"boolean"}},"type":"object"},"state.InstallStackState":{"properties":{"checksum":{"type":"string"},"outputs":{"additionalProperties":true,"type":"object"},"populated":{"type":"boolean"},"quick_link_url":{"type":"string"},"status":{"type":"string"},"template_json":{"type":"string"},"template_url":{"type":"string"}},"type":"object"},"state.InstallState":{"properties":{"id":{"type":"string"},"inputs":{"additionalProperties":{"type":"string"},"type":"object"},"internal_domain":{"type":"string"},"name":{"type":"string"},"populated":{"type":"boolean"},"public_domain":{"type":"string"},"sandbox":{"$ref":"#/components/schemas/state.SandboxState"}},"type":"object"},"state.OrgState":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"populated":{"type":"boolean"},"status":{"type":"string"}},"type":"object"},"state.RunnerState":{"properties":{"id":{"type":"string"},"populated":{"type":"boolean"},"runner_group_id":{"type":"string"},"status":{"type":"string"}},"type":"object"},"state.SandboxState":{"properties":{"outputs":{"additionalProperties":true,"type":"object"},"populated":{"type":"boolean"},"recent_runs":{"items":{"$ref":"#/components/schemas/state.SandboxState"},"type":"array"},"status":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"state.SecretsState":{"additionalProperties":{"$ref":"#/components/schemas/outputs.SecretSyncOutput"},"type":"object"},"stderr.ErrResponse":{"properties":{"description":{"type":"string"},"error":{"type":"string"},"user_error":{"type":"boolean"}},"type":"object"},"types.StringBoolMap":{"additionalProperties":{"type":"boolean"},"type":"object"}},"securitySchemes":{"APIKey":{"description":"Type \"Bearer\" followed by a space and token.","in":"header","name":"Authorization","type":"apiKey"},"OrgID":{"description":"Nuon org ID","in":"header","name":"X-Nuon-Org-ID","type":"apiKey"}}},"info":{"contact":{"email":"support@nuon.co","name":"Nuon Support"},"description":"API for managing nuon apps, components, installs, and actions.","title":"Nuon","version":"0.19.821"},"openapi":"3.0.3","paths":{"/v1/account":{"get":{"description":"Get the current account with user journeys and other data","operationId":"GetCurrentAccount","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Get current account","tags":["accounts"]}},"/v1/account/user-journeys":{"get":{"description":"Get all user journeys for the current user account","operationId":"GetUserJourneys","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.UserJourney"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get user journeys","tags":["accounts"]},"post":{"description":"Add a new user journey with steps to track user progress","operationId":"CreateUserJourney","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateUserJourneyRequest"}}},"description":"Create journey request","required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Create a new user journey for account","tags":["accounts"]}},"/v1/account/user-journeys/{journey_name}/complete":{"post":{"description":"Mark all remaining steps in the specified user journey as complete","operationId":"CompleteUserJourney","parameters":[{"description":"Journey name to complete","in":"path","name":"journey_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Complete all steps in a specific user journey","tags":["accounts"]}},"/v1/account/user-journeys/{journey_name}/reset":{"post":{"description":"Reset all steps in a specified user journey by setting their completion status to false","operationId":"ResetUserJourney","parameters":[{"description":"Journey name","in":"path","name":"journey_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Reset user journey steps","tags":["accounts"]}},"/v1/account/user-journeys/{journey_name}/steps/{step_name}":{"patch":{"description":"Mark a user journey step as complete or incomplete","operationId":"UpdateUserJourneyStep","parameters":[{"description":"Journey name","in":"path","name":"journey_name","required":true,"schema":{"type":"string"}},{"description":"Step name","in":"path","name":"step_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateUserJourneyStepRequest"}}},"description":"Update step request","required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Update user journey step completion status","tags":["accounts"]}},"/v1/action-workflows/configs/{action_workflow_config_id}":{"get":{"deprecated":true,"description":"Return an action workflow configuration by id.\n","operationId":"GetActionWorkflowConfig","parameters":[{"description":"action workflow config ID","in":"path","name":"action_workflow_config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow config","tags":["actions","actions/runner"]}},"/v1/action-workflows/{action_workflow_id}":{"delete":{"deprecated":true,"description":"Delete an action workflow.\n","operationId":"DeleteActionWorkflow","parameters":[{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an action workflow","tags":["actions"]},"get":{"deprecated":true,"description":"Return an app action workflow by id.\n","operationId":"GetActionWorkflow","parameters":[{"description":"action workflow ID or name","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow by action workflow id","tags":["actions"]},"patch":{"deprecated":true,"description":"Update an app action workflow configuration.\n","operationId":"UpdateAppActionWorkflow","parameters":[{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateActionWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"patch an app","tags":["actions"]}},"/v1/action-workflows/{action_workflow_id}/configs":{"get":{"description":"Returns all action workflow configurations.\n","operationId":"GetActionWorkflowConfigs","parameters":[{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow for an app","tags":["actions"]},"post":{"deprecated":true,"description":"Create an action workflow configuration.\n","operationId":"CreateActionWorkflowConfig","parameters":[{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateActionWorkflowConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create action workflow config","tags":["actions"]}},"/v1/action-workflows/{action_workflow_id}/latest-config":{"get":{"deprecated":true,"description":"Return the latest config for an action workflow.\n","operationId":"GetActionWorkflowLatestConfig","parameters":[{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow's latest config","tags":["actions"]}},"/v1/apps":{"get":{"description":"Returns all apps for the authenticated user.\n","operationId":"GetApps","parameters":[{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"search query to filter apps by name","in":"query","name":"q","schema":{"type":"string"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.App"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all apps for the current org","tags":["apps"]},"post":{"description":"Create a new app.\n","operationId":"CreateApp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.App"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app","tags":["apps"]}},"/v1/apps/{app_id}":{"delete":{"description":"Delete an app.\n","operationId":"DeleteApp","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an app","tags":["apps"]},"get":{"description":"Return an app.\n","operationId":"GetApp","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.App"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app","tags":["apps"]},"patch":{"description":"Update an app's configuration.\n","operationId":"UpdateApp","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateAppRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.App"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update an app","tags":["apps"]}},"/v1/apps/{app_id}/action-workflows":{"get":{"deprecated":true,"description":"Returns all action workflows for the provided app.\n","operationId":"GetActionWorkflows","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"search query to filter action workflows by name","in":"query","name":"q","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflows for an app","tags":["actions"]},"post":{"deprecated":true,"description":"Create an action workflow for an app.\n","operationId":"CreateAppActionWorkflow","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppActionWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app action workflow","tags":["actions"]}},"/v1/apps/{app_id}/action-workflows/{action_workflow_id}":{"get":{"description":"Return an app action workflow by id.\n","operationId":"GetAppActionWorkflow","parameters":[{"description":"app ID or name","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action workflow ID or name","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow","tags":["actions"]}},"/v1/apps/{app_id}/actions":{"get":{"description":"Returns all action workflows for the provided app.\n","operationId":"GetAppActions","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"search query to filter action workflows by name","in":"query","name":"q","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflows for an app","tags":["actions"]},"post":{"deprecated":true,"description":"Create an action workflow for an app.\n","operationId":"CreateAppAction","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppActionRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app action","tags":["actions"]}},"/v1/apps/{app_id}/actions/configs/{action_config_id}":{"get":{"description":"Return an action workflow configuration by id.\n","operationId":"GetAppActionConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action config ID","in":"path","name":"action_config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action config","tags":["actions"]}},"/v1/apps/{app_id}/actions/{action_id}":{"delete":{"description":"Delete an action workflow.\n","operationId":"DeleteAction","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an action","tags":["actions"]},"get":{"description":"Return an app action workflow by id.\n","operationId":"GetAppAction","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action ID or name","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow by action workflow id","tags":["actions"]},"patch":{"deprecated":true,"description":"Update an app action workflow configuration.\n","operationId":"UpdateAppAction","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateActionWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflow"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"patch an app action","tags":["actions"]}},"/v1/apps/{app_id}/actions/{action_id}/configs":{"get":{"description":"Returns all action workflow configurations.\n","operationId":"GetAppActionConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action workflow ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow for an app","tags":["actions"]},"post":{"description":"Create an action workflow configuration.\n","operationId":"CreateActionConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateActionWorkflowConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create action config","tags":["actions"]}},"/v1/apps/{app_id}/actions/{action_id}/latest-config":{"get":{"description":"Return the latest config for an action workflow.\n","operationId":"GetActionLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"action workflow ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ActionWorkflowConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app action workflow's latest config","tags":["actions"]}},"/v1/apps/{app_id}/branches":{"get":{"description":"Returns all branches for the provided app.\n","operationId":"GetAppBranches","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of branches to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of branches to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppBranch"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app branches","tags":["apps"]},"post":{"description":"Cancel a runner job.\n","operationId":"CreateAppBranch","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppBranchRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppBranch"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/branches/{app_branch_id}/configs":{"get":{"description":"Returns all branch configurations for the provided app.\n","operationId":"GetAppBranchAppConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app branch ID","in":"path","name":"app_branch_id","required":true,"schema":{"type":"string"}},{"description":"offset of branches to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of branches to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app branch app configs","tags":["apps"]}},"/v1/apps/{app_id}/break-glass-configs":{"post":{"description":"Create a break glass config for an app.\n","operationId":"CreateAppBreakGlassConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppBreakGlassConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppBreakGlassConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/break-glass-configs/{config_id}":{"get":{"description":"Return an app break glass config by id.\n","operationId":"GetAppBreakGlassConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app break glass config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppBreakGlassConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app break_glass config","tags":["apps"]}},"/v1/apps/{app_id}/component/{component_name_or_id}":{"get":{"description":"Return an app component by id or name.\n","operationId":"GetAppComponent","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"name or ID","in":"path","name":"component_name_or_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Component"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a components for a specific app","tags":["components"]}},"/v1/apps/{app_id}/components":{"get":{"description":"Returns all components for the provided app.\n","operationId":"GetAppComponents","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"search query to filter components by name","in":"query","name":"q","schema":{"type":"string"}},{"description":"comma-separated list of component types to filter by (e.g., terraform_module, helm_chart)","in":"query","name":"types","schema":{"type":"string"}},{"description":"comma-separated list of component IDs to filter by","in":"query","name":"component_ids","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Component"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all components for an app","tags":["components"]},"post":{"description":"Create a new component for an app.\n","operationId":"CreateComponent","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateComponentRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Component"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a component","tags":["components"]}},"/v1/apps/{app_id}/components/build-all":{"post":{"description":"Build all components for an app.\n","operationId":"BuildAllComponents","parameters":[{"description":"component ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.BuildAllComponentsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentBuild"},"type":"array"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create component build","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}":{"delete":{"description":"Delete a component.\n","operationId":"DeleteAppComponent","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete a component","tags":["components"]},"patch":{"description":"Update a component's configuration.\n","operationId":"UpdateAppComponent","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateComponentRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Component"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/builds":{"get":{"description":"Returns all builds for the provided component.\n","operationId":"GetAppComponentBuilds","parameters":[{"description":"app id to filter by","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component id to filter by","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentBuild"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get builds for components","tags":["components"]},"post":{"description":"Create a build for a component.\n","operationId":"CreateAppComponentBuild","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateComponentBuildRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create component build","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/builds/latest":{"get":{"description":"Returns the most recent build for the provided component.\n","operationId":"GetAppComponentLatestBuild","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest build for a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/builds/{build_id}":{"get":{"description":"Returns builds for one or all components in an app.\n","operationId":"GetAppComponentBuild","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"build ID","in":"path","name":"build_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a build for a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs":{"get":{"description":"Returns all configurations for the provided component.\n","operationId":"GetAppComponentConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentConfigConnection"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all configs for a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/docker-build":{"post":{"description":"Create a Docker build component config.\n","operationId":"CreateAppDockerBuildComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateDockerBuildComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.DockerBuildComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a docker build component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/external-image":{"post":{"description":"Create an external image component config.\n","operationId":"CreateAppExternalImageComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateExternalImageComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ExternalImageComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an external image component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/helm":{"post":{"description":"Create a helm component config.\n","operationId":"CreateAppHelmComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateHelmComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.HelmComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a helm component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/job":{"post":{"description":"Create a job component config.\n","operationId":"CreateAppJobComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateJobComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.JobComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a job component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/kubernetes-manifest":{"post":{"description":"Create a Kubernetes manifest component config.\n","operationId":"CreateAppKubernetesManifestComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateKubernetesManifestComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.KubernetesManifestComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a kubernetes manifest component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/latest":{"get":{"description":"Returns the most recent config for the provided component.\n","operationId":"GetAppComponentLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentConfigConnection"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest config for a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/terraform-module":{"post":{"description":"Create a terraform component config.\n","operationId":"CreateAppTerraformModuleComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateTerraformModuleComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformModuleComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a terraform component config","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/configs/{config_id}":{"get":{"description":"Return a component configuration by id.\n","operationId":"GetAppComponentConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentConfigConnection"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a config for a component","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/dependencies":{"get":{"deprecated":true,"description":"Returns all dependencies for the provided component.\n","operationId":"GetAppComponentDependencies","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Component"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a component's dependencies","tags":["components"]}},"/v1/apps/{app_id}/components/{component_id}/dependents":{"get":{"description":"Returns all components that depend on the provided component.\n","operationId":"GetAppComponentDependents","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ComponentChildren"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a component's children","tags":["components"]}},"/v1/apps/{app_id}/config":{"post":{"deprecated":true,"description":"Create an app config, by pushing the contents of a config file.\n\nThe API will automatically configure the app according to the config file in the background.\n","operationId":"CreateAppConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/config/{app_config_id}":{"get":{"deprecated":true,"description":"Fetch an app config by id.\n","operationId":"GetAppConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"app_config_id","required":true,"schema":{"type":"string"}},{"description":"load all children configs","in":"query","name":"recurse","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app config","tags":["apps"]},"patch":{"description":"Update an app config, setting status and state.\n","operationId":"UpdateAppConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"app_config_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateAppConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/config/{app_config_id}/graph":{"get":{"deprecated":true,"description":"Return raw graphviz data as a string that can be used to visualize a graph for an app.\n\nNote, for more complex viewing recommend to copy this output directly into [Graphviz\nviewer](https://dreampuf.github.io/GraphvizOnline).\n","operationId":"GetAppConfigGraph","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"app_config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app config graph","tags":["apps"]}},"/v1/apps/{app_id}/config/{app_config_id}/update-installs":{"post":{"deprecated":true,"description":"Update app configuration across multiple installs.\n","operationId":"UpdateAppConfigInstalls","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"app_config_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateAppConfigInstallsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/configs":{"get":{"description":"Returns all configs for the app.\n","operationId":"GetAppConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app configs","tags":["apps"]},"post":{"description":"Create an app config, by pushing the contents of a config file.\n\nThe API will automatically configure the app according to the config file in the background.\n","operationId":"CreateAppConfigV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/configs/{config_id}":{"get":{"description":"Fetch an app config by id.\n","operationId":"GetAppConflgV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}},{"description":"load all children configs","in":"query","name":"recurse","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app config","tags":["apps"]},"patch":{"description":"Update an app config, setting status and state.\n","operationId":"UpdateAppConflgV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateAppConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/configs/{config_id}/graph":{"get":{"description":"Return raw graphviz data as a string that can be used to visualize a graph for an app.\n\nNote, for more complex viewing recommend to copy this output directly into [Graphviz\nviewer](https://dreampuf.github.io/GraphvizOnline).\n","operationId":"GetAppConfigGraphV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app config graph","tags":["apps"]}},"/v1/apps/{app_id}/configs/{config_id}/update-installs":{"post":{"description":"Update app configuration across multiple installs.\n","operationId":"UpdateAppConfigInstallsV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateAppConfigInstallsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/input-config":{"post":{"description":"App input configs allow you to declare the inputs for your application, and do things such as require customer inputs or \nexpose configuration knobs in your application.\n","operationId":"CreateAppInputConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppInputConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppInputConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/input-configs":{"get":{"description":"Returns all input configurations for the provided app.\n","operationId":"GetAppInputConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppInputConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app input configs","tags":["apps"]}},"/v1/apps/{app_id}/input-configs/{input_config_id}":{"get":{"description":"Return an input config by id.\n","operationId":"GetAppInputConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"input config ID","in":"path","name":"input_config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppInputConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app input config","tags":["apps"]}},"/v1/apps/{app_id}/input-latest-config":{"get":{"description":"Returns the most recent input config for the provided app.\n","operationId":"GetAppInputLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppInputConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app input config","tags":["apps"]}},"/v1/apps/{app_id}/installs":{"get":{"description":"Returns all installs for the provided app.\n","operationId":"GetAppInstalls","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"search query","in":"query","name":"q","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Install"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all installs for an app","tags":["installs"]},"post":{"deprecated":true,"description":"Create a new install for an app.\n","operationId":"CreateInstall","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Install"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app install","tags":["installs"]}},"/v1/apps/{app_id}/latest-break-glass-config":{"get":{"description":"Get the latest break glass config for an app.\n","operationId":"GetLatestAppBreakGlassConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppBreakGlassConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app break glass config","tags":["apps"]}},"/v1/apps/{app_id}/latest-config":{"get":{"description":"Returns the most recent config for the provided app.\n","operationId":"GetAppLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"load all children configs","in":"query","name":"recurse","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app config","tags":["apps"]}},"/v1/apps/{app_id}/latest-permissions-config":{"get":{"description":"Get the latest app permissions config.\n","operationId":"GetLatestAppPermissionsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPermissionsConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app permissions config","tags":["apps"]}},"/v1/apps/{app_id}/latest-policies-config":{"get":{"description":"Get latest app policies config.\n","operationId":"GetLatestAppPoliciesConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app policies config","tags":["apps"]}},"/v1/apps/{app_id}/latest-secrets-config":{"get":{"description":"Get the latest app secrets config.\n","operationId":"GetLatestAppSecretsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSecretsConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app secrets config","tags":["apps"]}},"/v1/apps/{app_id}/operation-role-configs":{"post":{"description":"Create operation role rules for an app config","operationId":"CreateAppOperationRoleConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppOperationRoleConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppOperationRoleConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create operation role config","tags":["apps"]}},"/v1/apps/{app_id}/operation-role-configs/{operation_role_config_id}":{"get":{"description":"Get all operation role configs for an app","operationId":"GetAppOperationRoleConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"operation role config ID","in":"path","name":"operation_role_config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppOperationRoleConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get operation role configs","tags":["apps"]}},"/v1/apps/{app_id}/permissions-configs":{"post":{"description":"Create app permissions config.\n","operationId":"CreateAppPermissionsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppPermissionsConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPermissionsConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/permissions-configs/{config_id}":{"get":{"description":"Return an app permissions config by id.\n","operationId":"GetAppPermissionsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app permissions config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPermissionsConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app permissions config","tags":["apps"]}},"/v1/apps/{app_id}/policies-configs":{"get":{"description":"Get all policies configs for an app.\n","operationId":"GetAppPoliciesConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppPoliciesConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app policies configs","tags":["apps"]},"post":{"description":"Create app policies config.\n","operationId":"CreateAppPoliciesConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppPoliciesConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPoliciesConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/policies-configs/{config_id}":{"get":{"description":"Return an app policy config by id.\n","operationId":"GetAppPoliciesConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app policies config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app policies config","tags":["apps"]}},"/v1/apps/{app_id}/releases":{"get":{"description":"Returns all releases for the provided app.\n","operationId":"GetAppReleases","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentRelease"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all releases for an app","tags":["releases"]}},"/v1/apps/{app_id}/runner-configs":{"get":{"description":"Returns all runner configurations for the provided app.\n","operationId":"GetAppRunnerConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppRunnerConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app runner configs","tags":["apps"]},"post":{"description":"Create a runner configuration for an app.\n","operationId":"CreateAppRunnerConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppRunnerConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppRunnerConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app runner config","tags":["apps"]}},"/v1/apps/{app_id}/runner-latest-config":{"get":{"description":"Returns the most recent runner config for the provided app.\n","operationId":"GetAppRunnerLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppRunnerConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app runner config","tags":["apps"]}},"/v1/apps/{app_id}/sandbox-config":{"post":{"deprecated":true,"description":"Create a sandbox configuration for an app.\n","operationId":"CreateAppSandboxConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppSandboxConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSandboxConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app sandbox config","tags":["apps"]}},"/v1/apps/{app_id}/sandbox-configs":{"get":{"description":"Returns all sandbox configurations for the provided app.\n","operationId":"GetAppSandboxConfigs","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppSandboxConfig"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app sandbox configs","tags":["apps"]},"post":{"description":"Create a sandbox configuration for an app.\n","operationId":"CreateAppSandboxConfigV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppSandboxConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSandboxConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app sandbox config","tags":["apps"]}},"/v1/apps/{app_id}/sandbox-latest-config":{"get":{"description":"Returns the most recent sandbox config for the provided app.\n","operationId":"GetAppSandboxLatestConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSandboxConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest app sandbox config","tags":["apps"]}},"/v1/apps/{app_id}/secret":{"post":{"deprecated":true,"description":"Create an app secret that can be used to configure components. To reference an app secret, use `.nuon.secrets.\u003csecret_name\u003e`.\n\n**NOTE** secrets can only be written, or deleted, not read.\n","operationId":"CreateAppSecret","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppSecretRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSecret"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app secret","tags":["apps"]}},"/v1/apps/{app_id}/secret/{secret_id}":{"delete":{"deprecated":true,"description":"Delete an app secret.\n","operationId":"DeleteAppSecret","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"secret ID","in":"path","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an app secret","tags":["apps"]}},"/v1/apps/{app_id}/secrets":{"get":{"description":"List all secrets for an app.\n\n**NOTE** this does not return any sensitive values, as secrets are write only.\n","operationId":"GetAppSecrets","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.AppSecret"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app secrets","tags":["apps"]},"post":{"description":"Create an app secret that can be used to configure components. To reference an app secret, use `.nuon.secrets.\u003csecret_name\u003e`.\n\n**NOTE** secrets can only be written, or deleted, not read.\n","operationId":"CreateAppSecretV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppSecretRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSecret"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app secret","tags":["apps"]}},"/v1/apps/{app_id}/secrets-configs":{"post":{"description":"Create an app secrets config.\n","operationId":"CreateAppSecretsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppSecretsConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSecretsConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"tags":["apps"]}},"/v1/apps/{app_id}/secrets-configs/{config_id}":{"get":{"description":"Return an app secrets config by id.\n","operationId":"GetAppSecretsConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app secrets config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppSecretsConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app secrets config","tags":["apps"]}},"/v1/apps/{app_id}/secrets/{secret_id}":{"delete":{"description":"Delete an app secret.\n","operationId":"DeleteAppSecretV2","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"secret ID","in":"path","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an app secret","tags":["apps"]}},"/v1/apps/{app_id}/stack-configs":{"post":{"description":"Create a cloudformation stack config\n","operationId":"CreateAppStackConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAppStackConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppStackConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app stack config","tags":["apps"]}},"/v1/apps/{app_id}/stack-configs/{config_id}":{"get":{"description":"Return a cloudformation stack config\n","operationId":"GetAppStackConfig","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app stack config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.AppStackConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get app stack config","tags":["apps"]}},"/v1/apps/{app_id}/template-config":{"get":{"description":"Create an application template which provides a fully rendered config that can be modified and used to kickstart any application.\n","operationId":"GetAppConfigTemplate","parameters":[{"description":"app ID","in":"path","name":"app_id","required":true,"schema":{"type":"string"}},{"description":"app template type","in":"query","name":"type","required":true,"schema":{"enum":["aws-ecs","aws-ecs-byovpc","aws-eks","aws-eks-byovpc","azure-aks","flat","top-level","installer","runner","sandbox","inputs","terraform","terraformInfra","helm","docker-build","job","container-image","ecr-container-image"],"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.AppConfigTemplate"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an app config template","tags":["apps"]}},"/v1/auth/me":{"get":{"description":"Returns the authenticated account with identity profile information (provider_type, name, picture)","operationId":"GetAuthMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.AuthMeResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Get current account with identity information","tags":["auth"]}},"/v1/builds":{"get":{"deprecated":true,"description":"Returns all builds for the provided component.\n","operationId":"GetComponentBuilds","parameters":[{"description":"component id to filter by","in":"query","name":"component_id","schema":{"type":"string"}},{"description":"app id to filter by","in":"query","name":"app_id","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentBuild"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get builds for components","tags":["components"]}},"/v1/components":{"get":{"description":"Returns all components for the provided organization.\n","operationId":"GetOrgComponents","parameters":[{"description":"comma-separated list of component IDs to filter by","in":"query","name":"component_ids","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Component"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all components for an org","tags":["components"]}},"/v1/components/builds/{build_id}":{"get":{"deprecated":true,"description":"Returns builds for one or all components in an app.\n","operationId":"GetBuild","parameters":[{"description":"build ID","in":"path","name":"build_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a build","tags":["components"]}},"/v1/components/{component_id}":{"delete":{"deprecated":true,"description":"Delete a component.\n","operationId":"DeleteComponent","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete a component","tags":["components"]},"get":{"description":"Return a component by id.\n","operationId":"GetComponent","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Component"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a component","tags":["components"]},"patch":{"deprecated":true,"description":"Update a component's configuration.\n","operationId":"UpdateComponent","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateComponentRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Component"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update a component","tags":["components"]}},"/v1/components/{component_id}/builds":{"post":{"deprecated":true,"description":"Create a build for a component.\n","operationId":"CreateComponentBuild","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateComponentBuildRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create component build","tags":["components"]}},"/v1/components/{component_id}/builds/latest":{"get":{"deprecated":true,"description":"Returns the most recent build for the provided component.\n","operationId":"GetComponentLatestBuild","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest build for a component","tags":["components"]}},"/v1/components/{component_id}/builds/{build_id}":{"get":{"deprecated":true,"description":"Returns builds for one or all components in an app.\n","operationId":"GetComponentBuild","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"build ID","in":"path","name":"build_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentBuild"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a build for a component","tags":["components"]}},"/v1/components/{component_id}/configs":{"get":{"deprecated":true,"description":"Returns all configurations for the provided component.\n","operationId":"GetComponentConfigs","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentConfigConnection"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all configs for a component","tags":["components"]}},"/v1/components/{component_id}/configs/docker-build":{"post":{"deprecated":true,"description":"Create a Docker build component config.\n","operationId":"CreateDockerBuildComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateDockerBuildComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.DockerBuildComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a docker build component config","tags":["components"]}},"/v1/components/{component_id}/configs/external-image":{"post":{"deprecated":true,"description":"Create an external image component config.\n","operationId":"CreateExternalImageComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateExternalImageComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ExternalImageComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an external image component config","tags":["components"]}},"/v1/components/{component_id}/configs/helm":{"post":{"deprecated":true,"description":"Create a helm component config.\n","operationId":"CreateHelmComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateHelmComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.HelmComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a helm component config","tags":["components"]}},"/v1/components/{component_id}/configs/job":{"post":{"deprecated":true,"description":"Create a job component config.\n","operationId":"CreateJobComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateJobComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.JobComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a job component config","tags":["components"]}},"/v1/components/{component_id}/configs/kubernetes-manifest":{"post":{"deprecated":true,"description":"Create a Kubernetes manifest component config.\n","operationId":"CreateKubernetesManifestComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateKubernetesManifestComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.KubernetesManifestComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a kubernetes manifest component config","tags":["components"]}},"/v1/components/{component_id}/configs/latest":{"get":{"deprecated":true,"description":"Returns the most recent config for the provided component.\n","operationId":"GetComponentLatestConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentConfigConnection"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest config for a component","tags":["components"]}},"/v1/components/{component_id}/configs/terraform-module":{"post":{"deprecated":true,"description":"Create a terraform component config.\n","operationId":"CreateTerraformModuleComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateTerraformModuleComponentConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformModuleComponentConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a terraform component config","tags":["components"]}},"/v1/components/{component_id}/configs/{config_id}":{"get":{"deprecated":true,"description":"Return a component configuration by id.\n","operationId":"GetComponentConfig","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentConfigConnection"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a config for a component","tags":["components"]}},"/v1/components/{component_id}/dependencies":{"get":{"deprecated":true,"description":"Returns all dependencies for the provided component.\n","operationId":"GetComponentDependencies","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Component"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a component's dependencies","tags":["components"]}},"/v1/components/{component_id}/dependents":{"get":{"description":"Returns all components that depend on the provided component.\n","operationId":"GetComponentDependents","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ComponentChildren"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a component's children","tags":["components"]}},"/v1/components/{component_id}/releases":{"get":{"description":"Returns all releases for the provided component.\n","operationId":"GetComponentReleases","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentRelease"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all releases for a component","tags":["releases"]},"post":{"description":"Create a release for a component.\n","operationId":"CreateComponentRelease","parameters":[{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateComponentReleaseRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentRelease"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a release","tags":["releases"]}},"/v1/general/cli-config":{"get":{"description":"Returns CLI configuration and settings.\n","operationId":"GetCLIConfig","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CLIConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"summary":"Get config for cli","tags":["general"]}},"/v1/general/cloud-platform/{cloud_platform}/regions":{"get":{"description":"Return region metadata for the Nuon supported cloud platforms.\n","operationId":"GetCloudPlatformRegions","parameters":[{"description":"cloud platform","in":"path","name":"cloud_platform","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.CloudPlatformRegion"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"summary":"Get regions for a cloud platform","tags":["general"]}},"/v1/general/config-schema":{"get":{"description":"Return jsonschemas for Nuon configs. These can be used in frontmatter in most editors that have a TOML LSP (such as\n[Taplo](https://taplo.tamasfe.dev/) configured.\n\n```toml\n#:schema https://api.nuon.co/v1/general/config-schema?source=inputs\n\ndescription = \"description\"\n```\n\nYou can pass in a valid source argument to render within a specific config file:\n\n- input\n- input-group\n- installer\n- sandbox\n- runner\n- docker_build\n- container_image\n- helm\n- terraform\n- job\n","operationId":"GetConfigSchema","parameters":[{"description":"return a schema for a source file","in":"query","name":"type","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"summary":"Get jsonschema for config file","tags":["general"]}},"/v1/general/current-user":{"get":{"description":"Returns the current authenticated user account.\n","operationId":"GetCurrentUser","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Get current user","tags":["general"]}},"/v1/general/waitlist":{"post":{"description":"Add an entry to the waitlist.\n","operationId":"CreateWaitlist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.WaitlistRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Waitlist"}}},"description":"OK"}},"security":[{"APIKey":[]}],"summary":"Allow user to be added to an org waitlist.","tags":["general"]}},"/v1/install-workflows/{install_workflow_id}":{"get":{"deprecated":true,"description":"Return a workflow.\n","operationId":"GetInstallWorkflow","parameters":[{"description":"install workflow ID","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Workflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install workflow","tags":["installs"]},"patch":{"deprecated":true,"description":"Update a workflow configuration.\n","operationId":"UpdateInstallWorkflow","parameters":[{"description":"install workflow ID","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Workflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update an install workflow","tags":["installs"]}},"/v1/install-workflows/{install_workflow_id}/cancel":{"post":{"deprecated":true,"description":"Cancel a running workflow execution.\n","operationId":"CancelInstallWorkflow","parameters":[{"description":"install workflow ID","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"cancel an ongoing install workflow","tags":["installs"]}},"/v1/install-workflows/{install_workflow_id}/steps":{"get":{"deprecated":true,"description":"Return all steps for a workflow.\n","operationId":"GetInstallWorkflowSteps","parameters":[{"description":"install workflow ID","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.WorkflowStep"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all of the steps for a given install workflow","tags":["installs"]}},"/v1/install-workflows/{install_workflow_id}/steps/{install_workflow_step_id}":{"get":{"deprecated":true,"description":"Return a single workflow step.\n","operationId":"GetInstallWorkflowStep","parameters":[{"description":"workflow id","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"install_workflow_step_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.WorkflowStep"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install workflow step","tags":["installs"]}},"/v1/install-workflows/{install_workflow_id}/steps/{install_workflow_step_id}/approvals/{approval_id}":{"get":{"deprecated":true,"description":"Return a workflow step approval by id.\n","operationId":"GetInstallWorkflowStepApproval","parameters":[{"description":"workflow id","in":"path","name":"install_workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"install_workflow_step_id","required":true,"schema":{"type":"string"}},{"description":"approval id","in":"path","name":"approval_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.WorkflowStepApproval"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install workflow step approval","tags":["installs"]}},"/v1/installs":{"get":{"description":"Returns all installs for the provided organization.\n","operationId":"GetOrgInstalls","parameters":[{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"search query to filter installs by name","in":"query","name":"q","schema":{"type":"string"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Install"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all installs for an org","tags":["installs"]},"post":{"description":"Create a new install for an app.\n","operationId":"CreateInstallV2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallV2Request"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Install"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an app install","tags":["installs"]}},"/v1/installs/sandbox-runs/{run_id}":{"get":{"description":"Return a sandbox run for an install by id.\n","operationId":"GetInstallSandboxRun","parameters":[{"description":"run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallSandboxRun"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install sandbox run","tags":["installs"]}},"/v1/installs/stacks/{stack_id}":{"get":{"description":"Returns the deployment stack for an install.\n","operationId":"GetInstallStack","parameters":[{"description":"stack ID","in":"path","name":"stack_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallStack"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install stack by stack ID","tags":["installs"]}},"/v1/installs/{install_id}":{"delete":{"description":"Delete an install.\n","operationId":"DeleteInstall","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete an install","tags":["installs"]},"get":{"description":"Return an install by id.\n","operationId":"GetInstall","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"whether to include drifted objects","in":"query","name":"include_drifted_objects","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Install"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install","tags":["installs"]},"patch":{"description":"Update an install's settings.\n","operationId":"UpdateInstall","parameters":[{"description":"app ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateInstallRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Install"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update an install","tags":["installs"]}},"/v1/installs/{install_id}/action-workflows":{"get":{"deprecated":true,"description":"Get install action workflows.\n","operationId":"GetInstallActionWorkflows","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs action workflows","tags":["installs"]}},"/v1/installs/{install_id}/action-workflows/latest-runs":{"get":{"deprecated":true,"description":"Returns the most recent workflow run for each install action workflow.\n","operationId":"GetInstallActionWorkflowsLatestRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"filter by action workflow trigger by types","in":"query","name":"trigger_types","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}},{"description":"search query for action workflow name","in":"query","name":"q","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest runs for all action workflows by install id","tags":["actions"]}},"/v1/installs/{install_id}/action-workflows/runs":{"get":{"deprecated":true,"description":"Returns all action workflow runs for an install.\n","operationId":"GetInstallActionWorkflowRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow runs by install id","tags":["actions"]},"post":{"deprecated":true,"description":"AppWorkflowConfigId param has been deprecated and is no longer being consumed, the api uses currently install id to lookup related appworkflowconfigId\n","operationId":"CreateInstallActionWorkflowRun","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallActionWorkflowRunRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an action workflow run for an install","tags":["actions"]}},"/v1/installs/{install_id}/action-workflows/runs/{run_id}":{"get":{"deprecated":true,"description":"Return an install action workflow run by id.\n","operationId":"GetInstallActionWorkflowRun","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow runs by install id and run id","tags":["actions","actions/runner"]}},"/v1/installs/{install_id}/action-workflows/runs/{run_id}/steps/{step_id}":{"get":{"deprecated":true,"description":"Get an install action workflow run step.\n","operationId":"GetInstallActionWorkflowRunStep","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"workflow run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}},{"description":"step ID","in":"path","name":"step_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflowRunStep"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow run step by install id and step id","tags":["actions"]}},"/v1/installs/{install_id}/action-workflows/{action_workflow_id}":{"get":{"description":"Get an install action workflow.\n","operationId":"GetInstallActionWorkflow","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install action workflow","tags":["installs"]}},"/v1/installs/{install_id}/action-workflows/{action_workflow_id}/recent-runs":{"get":{"deprecated":true,"description":"Returns recent workflow runs for an install action workflow.\n","operationId":"GetInstallActionWorkflowRecentRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"action workflow ID","in":"path","name":"action_workflow_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get recent runs for an action workflow by install id","tags":["actions"]}},"/v1/installs/{install_id}/actions":{"get":{"description":"Get install action workflows.\n","operationId":"GetInstallActions","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs action workflows","tags":["installs"]}},"/v1/installs/{install_id}/actions/adhoc-run":{"post":{"description":"# Create AdHoc Action\n\nCreates and executes a one-time action on an install without creating a permanent action workflow definition.\n\n## Use Cases\n\n- Running ad-hoc debugging scripts\n- Executing maintenance commands\n- Testing bash snippets before creating permanent actions\n- Quick data exports or transformations\n\n## Request Body\n\nProvide **either** `inline_contents` (for multi-line bash scripts) **or** `command` (for single-line commands), but not both.\n\n### Fields\n\n- `inline_contents` (string, optional): Multi-line bash script to execute\n- `command` (string, optional): Single-line shell command to execute\n- `env_vars` (object, optional): Environment variables as key-value pairs\n- `timeout` (integer, optional): Execution timeout in seconds (1-3600, default: 300)\n- `name` (string, optional): Display name for the action (max 255 chars)\n\n## Response\n\nReturns the created adhoc action run with status information.\n\n## Example\n\n```bash\ncurl -X POST https://api.nuon.co/v1/installs/{install_id}/actions/adhoc \\\n  -H \"Authorization: Bearer $API_KEY\" \\\n  -H \"X-Nuon-Org-ID: $ORG_ID\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"inline_contents\": \"#!/bin/bash\\necho \\\"Hello from adhoc action\\\"\\nenv | grep NUON\",\n    \"env_vars\": {\n      \"DEBUG\": \"true\",\n      \"LOG_LEVEL\": \"info\"\n    },\n    \"timeout\": 300,\n    \"name\": \"Debug Script\"\n  }'\n```\n\n## Notes\n\n- AdHoc actions are marked with `trigger_type: \"adhoc\"`\n- They appear in action run history and can be filtered via trigger_type\n- Execution happens on the install's runner using the same infrastructure as permanent actions\n- Logs are preserved and can be viewed via the action runs API\n- AdHoc runs are kept indefinitely (same retention as regular action runs)\n","operationId":"CreateAdHocAction","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAdHocActionRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateAdHocActionResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an adhoc action run for an install","tags":["actions"]}},"/v1/installs/{install_id}/actions/latest-runs":{"get":{"description":"Returns the most recent workflow run for each install action workflow.\n","operationId":"GetInstallActionsLatestRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"filter by action workflow trigger by types","in":"query","name":"trigger_types","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}},{"description":"search query for action workflow name","in":"query","name":"q","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get latest runs for all action workflows by install id","tags":["actions"]}},"/v1/installs/{install_id}/actions/runs":{"get":{"description":"Returns all action workflow runs for an install.\n","operationId":"GetInstallActionRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow runs by install id","tags":["actions"]},"post":{"description":"\n","operationId":"CreateInstallActionRun","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallActionWorkflowRunRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an action run for an install","tags":["actions"]}},"/v1/installs/{install_id}/actions/runs/{run_id}":{"get":{"description":"Return an install action workflow run by id.\n","operationId":"GetInstallActionRun","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflowRun"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow runs by install id and run id","tags":["actions"]}},"/v1/installs/{install_id}/actions/runs/{run_id}/steps/{step_id}":{"get":{"description":"Get an install action workflow run step.\n","operationId":"GetInstallActionRunStep","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"workflow run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}},{"description":"step ID","in":"path","name":"step_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflowRunStep"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get action workflow run step by install id and step id","tags":["actions"]}},"/v1/installs/{install_id}/actions/{action_id}":{"get":{"description":"Get an install action workflow.\n","operationId":"GetInstallAction","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"action ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install action","tags":["installs"]}},"/v1/installs/{install_id}/actions/{action_id}/recent-runs":{"get":{"description":"Returns recent workflow runs for an install action workflow.\n","operationId":"GetInstallActionRecentRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"action workflow ID","in":"path","name":"action_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallActionWorkflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get recent runs for an action workflow by install id","tags":["actions"]}},"/v1/installs/{install_id}/audit_logs":{"get":{"description":"Returns audit logs for an install.\n","operationId":"GetInstallAuditLogs","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"start timestamp for audit log range","in":"query","name":"start","required":true,"schema":{"type":"string"}},{"description":"end timestamp for audit log range","in":"query","name":"end","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/csv":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallAuditLog"},"type":"array"}}},"description":"OK"},"400":{"content":{"text/csv":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"text/csv":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"text/csv":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"text/csv":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"text/csv":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get install audit logs","tags":["installs"]}},"/v1/installs/{install_id}/available-roles":{"get":{"description":"Returns a list of available IAM roles that can be used for a specific operation on an install.\n\nThe endpoint filters roles based on the operation type:\n- **provision/reprovision**: Custom roles, break glass roles, provision IAM role\n- **deprovision/teardown**: Custom roles, break glass roles, deprovision IAM role\n- **deploy**: Custom roles, break glass roles, maintenance IAM role\n- **trigger** (actions): Custom roles, break glass roles, provision + maintenance IAM roles\n\nRoles are sourced from the install's stack outputs.\n","operationId":"GetAvailableRoles","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"principal type: component, sandbox, action","in":"query","name":"principal_type","required":true,"schema":{"enum":["component","sandbox","action"],"type":"string"}},{"description":"operation type: provision, reprovision, deprovision, deploy, teardown, trigger","in":"query","name":"app.operationType","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.AvailableRolesResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get available IAM roles for a specific operation","tags":["installs"]}},"/v1/installs/{install_id}/components":{"get":{"description":"Returns all components for an install.\n","operationId":"GetInstallComponents","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component types to filter by","in":"query","name":"types","schema":{"type":"string"}},{"description":"search query for component name","in":"query","name":"q","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallComponent"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs components","tags":["installs"]}},"/v1/installs/{install_id}/components/deploy-all":{"post":{"description":"Deploy all components to an install.\n\nThis walks the graph order of the install's app, and will trigger a deploy for each on the specified install.\n","operationId":"DeployInstallComponents","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.DeployInstallComponentsRequest"}}},"description":"Input","x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"deploy all components on an install","tags":["installs"]}},"/v1/installs/{install_id}/components/deploys":{"get":{"deprecated":true,"description":"Returns all deployments for an install.\n","operationId":"GetInstallComponentsDeploys","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all deploys to an install","tags":["installs"]}},"/v1/installs/{install_id}/components/teardown-all":{"post":{"description":"Teardown all components on an install.\n","operationId":"TeardownInstallComponents","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.TeardownInstallComponentsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"teardown an install's components","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}":{"get":{"description":"Return an install component by id.\n","operationId":"GetInstallComponent","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallComponent"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install component","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/deploys":{"get":{"description":"Returns all deployments for an install component.\n","operationId":"GetInstallComponentDeploys","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install components deploys","tags":["installs"]},"post":{"description":"Create a new deployment for an install.\n","operationId":"CreateInstallComponentDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallComponentDeployRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"deploy a build to an install","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/deploys/latest":{"get":{"description":"Returns the most recent deployment for an install component.\n","operationId":"GetInstallComponentLatestDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get the latest deploy for an install component","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/deploys/{deploy_id}":{"get":{"deprecated":true,"description":"Return a deployment for an install by id.\n","operationId":"GetInstallComponentDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}},{"description":"deploy ID","in":"path","name":"deploy_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install deploy","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/forget":{"post":{"description":"# Forget Install Component\n\nPermanently forget (soft delete) an install component from the system. This operation marks the install component as deleted while preserving the record for audit purposes.\n\n## Use Cases\n\n- Remove a component that is no longer needed from an install\n- Clean up failed or orphaned install components\n- Prepare for reinstalling a component from scratch\n\n## Important Notes\n\n- This is a **soft delete** operation - the record is marked as deleted but remains in the database\n- The component will no longer appear in API responses or dashboard views\n- Associated resources (terraform state, deploys, etc.) are preserved via soft delete\n- This operation is **irreversible** via the API\n- To restore, database-level operations would be required\n\n## Prerequisites\n\n- Install must exist and belong to the authenticated organization\n- Component must exist for the specified install\n- User must have appropriate permissions for the install's organization\n- Component must be removed from the app configuration (sync required)\n\n## Behavior\n\n1. Validates install exists and belongs to org\n2. Validates install component exists\n3. Validates component is not in the app configuration\n4. Soft deletes the install component record\n5. Cascades soft delete to associated resources (via GORM associations)\n6. Sends event loop signal for any cleanup workflows\n7. Returns success response\n\n## Validation\n\nBefore forgetting an install component, the system validates that the component no longer exists in the app configuration. If the component is still in the app config, the request will fail with a user-friendly error message.\n\n**To resolve this error:**\n\n1. Remove the component from your `nuon.yaml` file\n2. Run `nuon apps sync` to update the app configuration\n3. Retry the forget operation\n\n## Related Endpoints\n\n- `DELETE /v1/installs/{install_id}` - Delete entire install\n- `POST /v1/installs/{install_id}/forget` - Forget entire install\n- `POST /v1/installs/{install_id}/components/{component_id}/teardown` - Teardown component infrastructure\n","operationId":"ForgetInstallComponent","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ForgetInstallComponentRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"forget an install component","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/outputs":{"get":{"description":"Return the latest outputs for a component.\n\n**NOTE** requires a valid install.\n","operationId":"GetInstallComponentOutputs","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install component outputs","tags":["installs"]}},"/v1/installs/{install_id}/components/{component_id}/teardown":{"post":{"description":"Teardown and remove an install component's resources.\n","operationId":"TeardownInstallComponent","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"component ID","in":"path","name":"component_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.TeardownInstallComponentRequest"}}},"description":"Input","x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"teardown an install component","tags":["installs"]}},"/v1/installs/{install_id}/configs":{"post":{"description":"Create a configuration for an install.\n","operationId":"CreateInstallConfig","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create an install config","tags":["installs"]}},"/v1/installs/{install_id}/configs/{config_id}":{"patch":{"description":"Update an install's configuration.\n","operationId":"UpdateInstallConfig","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"config ID","in":"path","name":"config_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateInstallConfigRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update an install config","tags":["installs"]}},"/v1/installs/{install_id}/deploys":{"get":{"deprecated":true,"description":"Returns all deployments for an install.\n","operationId":"GetInstallDeploys","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallDeploy"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all deploys to an install","tags":["installs"]},"post":{"deprecated":true,"description":"Create a new deployment for an install.\n","operationId":"CreateInstallDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallDeployRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"deploy a build to an install","tags":["installs"]}},"/v1/installs/{install_id}/deploys/latest":{"get":{"description":"Returns the most recent deployment for an install.\n","operationId":"GetInstallLatestDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install's latest deploy","tags":["installs"]}},"/v1/installs/{install_id}/deploys/{deploy_id}":{"get":{"description":"Return a deployment for an install by id.\n","operationId":"GetInstallDeploy","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"deploy ID","in":"path","name":"deploy_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallDeploy"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install deploy","tags":["installs"]}},"/v1/installs/{install_id}/deprovision":{"post":{"description":"Deprovision an install sandbox.\n","operationId":"DeprovisionInstall","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.DeprovisionInstallRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"deprovision an install","tags":["installs"]}},"/v1/installs/{install_id}/deprovision-sandbox":{"post":{"description":"Deprovision a sandbox environment for an install.\n","operationId":"DeprovisionInstallSandbox","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.DeprovisionInstallSandboxRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"deprovision an install","tags":["installs"]}},"/v1/installs/{install_id}/drifted-objects":{"get":{"description":"Returns all drifted objects for an install.\n","operationId":"GetDriftedObjects","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.DriftedObject"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get drifted objects for an install","tags":["installs"]}},"/v1/installs/{install_id}/events":{"get":{"description":"# Get Install Events\n\nReturn an event stream for an install.\n","operationId":"GetInstallEvents","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallEvent"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get events for an install","tags":["installs"]}},"/v1/installs/{install_id}/events/{event_id}":{"get":{"description":"Get a single install event.\n","operationId":"GetInstallEvent","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"event ID","in":"path","name":"event_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallEvent"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install event","tags":["installs"]}},"/v1/installs/{install_id}/forget":{"post":{"description":"Forget an install that has been deleted outside of nuon.\n\nThis should only be used in cases where an install was broken in an unordinary way and needs to be manually deleted so the parent resources can be deleted.\n","operationId":"ForgetInstall","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ForgetInstallRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"forget an install","tags":["installs"]}},"/v1/installs/{install_id}/generate-cli-install-config":{"get":{"description":"Generate CLI configuration for an install.\n","operationId":"GenerateCLIInstallConfig","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"OK"},"400":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"generate an install config to be used with CLI","tags":["installs"]}},"/v1/installs/{install_id}/generate-terraform-installer-config":{"get":{"description":"Generate terraform configuration for an installer.\n","operationId":"GenerateTerraformInstallerConfig","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"OK"},"400":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"generate a Terraform installer config","tags":["installs"]}},"/v1/installs/{install_id}/inputs":{"get":{"description":"Returns input values for an install.\n","operationId":"GetInstallInputs","parameters":[{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}},{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallInputs"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs inputs","tags":["installs"]},"patch":{"description":"Update input values for an install.\n","operationId":"UpdateInstallInputs","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateInstallInputsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallInputs"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Updates install input config for app","tags":["installs"]},"post":{"description":"Create input values for an install.\n","operationId":"CreateInstallInputs","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateInstallInputsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallInputs"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create install inputs","tags":["installs"]}},"/v1/installs/{install_id}/inputs/current":{"get":{"description":"Returns input values for an install.\n","operationId":"GetCurrentInstallInputs","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallInputs"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs current inputs","tags":["installs"]}},"/v1/installs/{install_id}/phone-home/{phone_home_id}":{"post":{"description":"A public endpoint for phoning home from a runner AWS cloudformation stack upon successfully processing it.\n","operationId":"PhoneHome","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"phone home ID","in":"path","name":"phone_home_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.InstallPhoneHomeRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"phone home for an install","tags":["installs"]}},"/v1/installs/{install_id}/readme":{"get":{"description":"Returns the `app.readme` markdown with the values interpolated from the install\ninputs and component outputs.\n","operationId":"GetInstallReadme","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.Readme"}}},"description":"OK"},"206":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.Readme"}}},"description":"Partial Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get install readme rendered with","tags":["installs"]}},"/v1/installs/{install_id}/reprovision":{"post":{"description":"Reprovision an install sandbox.\n\n","operationId":"ReprovisionInstall","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ReprovisionInstallRequest"}}},"description":"Input","x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"reprovision an install","tags":["installs"]}},"/v1/installs/{install_id}/reprovision-sandbox":{"post":{"description":"Reprovision an install sandbox and redeploy all components on top.\n","operationId":"ReprovisionInstallSandbox","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ReprovisionInstallSandboxRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"reprovision an install sandbox","tags":["installs"]}},"/v1/installs/{install_id}/retry-workflow":{"post":{"deprecated":true,"description":"Retry a failed workflow execution.\n","operationId":"RetryWorkflow","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"rerun the workflow steps starting from input step id, can be used to retry a failed step","tags":["installs"]}},"/v1/installs/{install_id}/runner-group":{"get":{"description":"Return the runner group, including runners and settings for the provided install.\n","operationId":"GetInstallRunnerGroup","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerGroup"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get an install's runner group","tags":["installs"]}},"/v1/installs/{install_id}/sandbox-runs":{"get":{"description":"Returns all sandbox runs for an install.\n","operationId":"GetInstallSandboxRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallSandboxRun"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an installs sandbox runs","tags":["installs"]}},"/v1/installs/{install_id}/sandbox-runs/{run_id}":{"get":{"description":"Return a sandbox run for an install by id.\n","operationId":"GetInstallSandboxRunV2","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"run ID","in":"path","name":"run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallSandboxRun"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install sandbox run","tags":["installs"]}},"/v1/installs/{install_id}/stack":{"get":{"description":"Returns the deployment stack for an install.\n","operationId":"GetInstallStackByInstallID","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallStack"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install stack by install ID","tags":["installs"]}},"/v1/installs/{install_id}/stack-runs":{"get":{"description":"get install stack runs","operationId":"GetInstallStackRuns","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.InstallStackVersionRun"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an install's stack runs","tags":["installs"]}},"/v1/installs/{install_id}/state":{"get":{"description":"Returns the current state for an install.\n","operationId":"GetInstallState","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/github_com_nuonco_nuon_pkg_types_state.State"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get the current state of an install.","tags":["installs"]}},"/v1/installs/{install_id}/state-history":{"get":{"description":"Returns the state history for an install.\n","operationId":"GetInstallStateHistory","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.InstallState"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get install state history.","tags":["installs"]}},"/v1/installs/{install_id}/sync-secrets":{"post":{"description":"Execute the sync secrets workflow.\n","operationId":"SyncSecrets","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.SyncSecretsRequest"}}},"description":"Input","x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"sync secrets install","tags":["installs"]}},"/v1/installs/{install_id}/workflows":{"get":{"description":"Return workflows for an install.\n","operationId":"GetWorkflows","parameters":[{"description":"install ID","in":"path","name":"install_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}},{"description":"exclude plan only workflows when set to false","in":"query","name":"planonly","schema":{"default":true,"type":"boolean"}},{"description":"filter by workflow type","in":"query","name":"type","schema":{"type":"string"}},{"description":"filter workflows created after timestamp (RFC3339 format)","in":"query","name":"created_at_gte","schema":{"type":"string"}},{"description":"filter workflows created before timestamp (RFC3339 format)","in":"query","name":"created_at_lte","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Workflow"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get workflows","tags":["installs"]}},"/v1/log-streams/{log_stream_id}":{"get":{"description":"Return a log stream.\n","operationId":"GetLogStream","parameters":[{"description":"log stream ID","in":"path","name":"log_stream_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.LogStream"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a log stream","tags":["runners"]}},"/v1/log-streams/{log_stream_id}/logs":{"get":{"description":"Read OTEL formatted logs for a log stream.\n","operationId":"LogStreamReadLogs","parameters":[{"description":"log stream ID","in":"path","name":"log_stream_id","required":true,"schema":{"type":"string"}},{"description":"log stream offset","in":"header","name":"X-Nuon-API-Offset","schema":{"type":"string"}},{"description":"resource attribute filters","in":"query","name":"order","schema":{"default":"asc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.OtelLogRecord"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"read a log stream's logs","tags":["runners"]}},"/v1/orgs":{"get":{"description":"Returns all organizations for the authenticated user.\n","operationId":"GetOrgs","parameters":[{"description":"search query","in":"query","name":"q","schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.Org"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"Return current user's orgs","tags":["orgs"]},"post":{"description":"Create a new organization.\n","operationId":"CreateOrg","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateOrgRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Org"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]}],"summary":"create a new org","tags":["orgs"]}},"/v1/orgs/current":{"delete":{"description":"Delete an organization.\n","operationId":"DeleteOrg","responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Delete an org","tags":["orgs"]},"get":{"description":"Return an organization by id.\n","operationId":"GetOrg","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Org"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get an org","tags":["orgs"]},"patch":{"description":"Update an organization's settings.\n","operationId":"UpdateOrg","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateOrgRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Org"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Update current org","tags":["orgs"]}},"/v1/orgs/current/accounts":{"get":{"description":"Return an organization by id.\n","operationId":"GetOrgAcounts","parameters":[{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get user accounts for current org","tags":["orgs"]}},"/v1/orgs/current/features":{"get":{"description":"Get the current organization's feature flag values.\n\nReturns a map of feature flag names to their enabled/disabled status for the authenticated organization.\n\nThis endpoint shows which features are currently enabled or disabled for your organization, unlike `/v1/orgs/features` which returns all available features with their descriptions.\n\nExample response:\n```json\n{\n  \"api-pagination\": true,\n  \"org-dashboard\": false,\n  \"org-runner\": true,\n  \"stratus-layout\": true,\n  \"user-managed-features\": false\n}\n```\n","operationId":"GetCurrentOrgFeatures","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object"}}},"description":"OK"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get current org's feature flags","tags":["orgs"]},"patch":{"description":"Update feature flags for your current organization.\n\nThis endpoint allows organization users to manage feature flags, but requires the `user-managed-features` flag to be enabled for the organization. The `user-managed-features` flag itself cannot be modified through this endpoint and can only be enabled/disabled by administrators.\n\n**Requirements:**\n- The `user-managed-features` flag must be enabled for your organization\n- You cannot toggle the `user-managed-features` flag through this endpoint (admin-only)\n\n**Example Request:**\n```json\n{\n  \"features\": {\n    \"api-pagination\": true,\n    \"install-delete\": false\n  }\n}\n```\n\nThe request will update only the specified feature flags. Features not included in the request will retain their current values.\n","operationId":"UpdateOrgFeatures","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateOrgFeaturesRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Org"}}},"description":"OK"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update org features (requires user-managed-features flag)","tags":["orgs"]}},"/v1/orgs/current/invites":{"get":{"description":"Returns a list of all invites to the org.\n","operationId":"GetOrgInvites","parameters":[{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":60,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.OrgInvite"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Return org invites","tags":["orgs"]},"post":{"description":"Invite a user (by email) to an org.\n\nThis user will receive an email, and when they next log into the application will be added to the org.\n","operationId":"CreateOrgInvite","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateOrgInviteRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.OrgInvite"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Invite a user to the current org","tags":["orgs"]}},"/v1/orgs/current/invites/{invite_id}/resend":{"post":{"description":"Resend the invite email for an existing pending org invite.\n\nThe invite must be in \"pending\" status. Accepted invites cannot be resent.\n","operationId":"ResendOrgInvite","parameters":[{"description":"invite ID","in":"path","name":"invite_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.OrgInvite"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Resend an org invite","tags":["orgs"]}},"/v1/orgs/current/remove-user":{"post":{"description":"Remove a user from an org.\n","operationId":"RemoveUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RemoveOrgUserRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Remove a user from the current org","tags":["orgs"]}},"/v1/orgs/current/runner-group":{"get":{"description":"Get the current org's runner group, which includes the runners and their settings.\n","operationId":"GetOrgRunnerGroup","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerGroup"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get an org's runner group","tags":["orgs"]}},"/v1/orgs/current/stats":{"get":{"description":"Returns statistics for the provided organization.\n","operationId":"GetOrgStats","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Org"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Get an org","tags":["orgs"]}},"/v1/orgs/current/user":{"post":{"description":"Add a user to an organization.\n","operationId":"AddUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateOrgUserRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Account"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Add a user to the current org","tags":["orgs"]}},"/v1/orgs/features":{"get":{"description":"Get all available organization feature flags with their descriptions.\n\nThis endpoint returns a list of all feature flags that can be enabled or disabled for organizations, along with detailed descriptions of what each feature provides.\n\nFeature flags control access to specific platform capabilities and can be managed by administrators through the admin API endpoints.\n","operationId":"GetOrgFeatures","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.OrgFeatureInfo"},"type":"array"}}},"description":"OK"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get available org features","tags":["orgs"]}},"/v1/releases/{release_id}":{"get":{"description":"Return a release by id.\n","operationId":"GetRelease","parameters":[{"description":"release ID","in":"path","name":"release_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.ComponentRelease"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a release","tags":["releases"]}},"/v1/releases/{release_id}/steps":{"get":{"description":"Return a release by id.\n","operationId":"GetReleaseSteps","parameters":[{"description":"release ID","in":"path","name":"release_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.ComponentReleaseStep"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a release's steps","tags":["releases"]}},"/v1/runner-jobs/{runner_job_id}":{"get":{"deprecated":true,"description":"Return a runner job.\n","operationId":"GetRunnerJob","parameters":[{"description":"runner job ID","in":"path","name":"runner_job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerJob"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner job","tags":["runners","runners/runner"]}},"/v1/runner-jobs/{runner_job_id}/cancel":{"post":{"description":"Cancel a runner job.\n","operationId":"CancelRunnerJob","parameters":[{"description":"runner job ID","in":"path","name":"runner_job_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CancelRunnerJobRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerJob"}}},"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"cancel runner job","tags":["runners"]}},"/v1/runner-jobs/{runner_job_id}/composite-plan":{"get":{"description":"Return a plan for a runner job.\n","operationId":"GetRunnerJobCompositePlan","parameters":[{"description":"runner job ID","in":"path","name":"runner_job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/plantypes.CompositePlan"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner job composite plan","tags":["runners","runners/runner"]}},"/v1/runner-jobs/{runner_job_id}/plan":{"get":{"deprecated":true,"description":"Return a plan for a runner job.\n","operationId":"GetRunnerJobPlan","parameters":[{"description":"runner job ID","in":"path","name":"runner_job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner job plan","tags":["runners","runners/runner"]}},"/v1/runners/terraform-workspace/{workspace_id}/state-json":{"get":{"deprecated":true,"description":"Returns terraform states in JSON format.\n","operationId":"GetTerraformWorkspaceStatesJSON","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspaceStateJSON"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform states json","tags":["runners"]}},"/v1/runners/terraform-workspace/{workspace_id}/state-json/{state_id}":{"get":{"deprecated":true,"description":"Return a terraform state in JSON format by id.\n","operationId":"GetTerraformWorkspaceStatesJSONByID","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"terraform state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state json by id. This output is same as \"terraform show --json\"","tags":["runners"]}},"/v1/runners/terraform-workspace/{workspace_id}/state-json/{state_id}/resources":{"get":{"deprecated":true,"description":"Returns terraform state resources in JSON format.\n","operationId":"GetTerraformWorkspaceStateJSONResources","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state resources. This output is similar to \"terraform state list\"","tags":["runners"]}},"/v1/runners/terraform-workspace/{workspace_id}/states":{"get":{"deprecated":true,"description":"Returns terraform states for an install.\n","operationId":"GetTerraformStates","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform states","tags":["runners"]}},"/v1/runners/terraform-workspace/{workspace_id}/states/{state_id}":{"get":{"deprecated":true,"description":"Return a terraform state by id.\n","operationId":"GetTerraformWorkspaceStateByID","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state by ID","tags":["runners"]}},"/v1/runners/terraform-workspace/{workspace_id}/states/{state_id}/resources":{"get":{"description":"Returns resources within a terraform state.\n","operationId":"GetTerraformWorkspaceStateResources","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformStateResource"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state resources","tags":["runners"]}},"/v1/runners/{runner_id}/card-details":{"get":{"description":"Returns runner card details for monitoring and status.\n","operationId":"GetRunnerCardDetails","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RunnerCardDetailsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner card details","tags":["runners"]}},"/v1/runners/{runner_id}/connected":{"get":{"description":"# get runner connect status\n\nThe connected status is based on runner heartbeat:\n\nif no heart beat found — false\nif heart beat \u003e 15 seconds ago — false, hb timestamp\nif the heart beat \u003c 15 seconds ago — true","operationId":"GetRunnerConnectStatus","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RunnerConnectionStatus"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a runner connection satus based on heartbeat","tags":["runners"]}},"/v1/runners/{runner_id}/force-shutdown":{"post":{"description":"Force shutdown a runner.\n\nThis will result in jobs being lost/cancelled if they are in-flight.\n","operationId":"ForceShutDownRunner","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.ForceShutdownRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"force shut down a runner","tags":["runners"]}},"/v1/runners/{runner_id}/graceful-shutdown":{"post":{"description":"Gracefully shut down a runner.\n\n_NOTE_ when a runner is unhealthy, the runner will not be able to pick up this job, so use force shut down instead.\n","operationId":"GracefulShutDownRunner","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.GracefulShutdownRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"shut down a runner","tags":["runners"]}},"/v1/runners/{runner_id}/heart-beats/latest":{"get":{"description":"\n","operationId":"GetLatestRunnerHeartBeat","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.LatestRunnerHeartBeats"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a runner","tags":["runners"]}},"/v1/runners/{runner_id}/jobs":{"get":{"description":"Return runner jobs.\n","operationId":"GetRunnerJobs","parameters":[{"description":"job group","in":"query","name":"group","schema":{"type":"string"}},{"description":"job groups","in":"query","name":"groups","schema":{"type":"string"}},{"description":"job status","in":"query","name":"status","schema":{"type":"string"}},{"description":"job statuses","in":"query","name":"statuses","schema":{"type":"string"}},{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}},{"description":"offset of jobs to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of jobs to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.RunnerJob"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner jobs","tags":["runners"]}},"/v1/runners/{runner_id}/latest-heart-beat":{"get":{"description":"\n","operationId":"GetRunnerLatestHeartBeat","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerHeartBeat"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get the latest heartbeats for a runner","tags":["runners"]}},"/v1/runners/{runner_id}/mng/fetch-token":{"post":{"operationId":"FetchRunnerTokenMng","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.MngFetchTokenRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"fetch authentication token for an install runner via the mng process","tags":["runners"]}},"/v1/runners/{runner_id}/mng/shutdown":{"post":{"operationId":"ShutDownRunnerMng","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.MngShutDownRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"shut down an install runner management process","tags":["runners"]}},"/v1/runners/{runner_id}/mng/shutdown-vm":{"post":{"operationId":"MngVMShutDown","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.MngVMShutDownRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"shut down an install runner VM","tags":["runners"]}},"/v1/runners/{runner_id}/mng/update":{"post":{"operationId":"UpdateRunnerMng","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.MngUpdateRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update an install runner via the mng process","tags":["runners"]}},"/v1/runners/{runner_id}/prune-tokens":{"post":{"description":"Prune old tokens for a specific runner by invalidating all tokens except the most recent one.\n\nThis is useful for cleaning up old tokens without disrupting the currently running runner.\nThe latest token (by creation time) is preserved, ensuring the active runner continues to function.\n\nReturns the count of invalidated tokens for the specified runner.\n","operationId":"PruneTokens","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.PruneTokensResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Prune old tokens for a runner","tags":["runners"]}},"/v1/runners/{runner_id}/recent-health-checks":{"get":{"description":"\n","operationId":"GetRunnerRecentHealthChecks","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}},{"description":"window of health checks to return","in":"query","name":"window","schema":{"default":"1h","type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"Enable pagination","in":"header","name":"x-nuon-pagination-enabled","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.RunnerHealthCheck"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get recent health checks","tags":["runners"]}},"/v1/runners/{runner_id}/settings":{"get":{"description":"Return runner settings for the provided runner.\n","operationId":"GetRunnerSettings","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerGroupSettings"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get runner settings","tags":["runners"]},"patch":{"description":"Update runner settings and configuration.\n","operationId":"UpdateRunnerSettings","parameters":[{"description":"runner ID","in":"path","name":"runner_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateRunnerSettingsRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.RunnerJobExecution"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update a runner's settings via its runner settings group","tags":["runners"]}},"/v1/terraform-backend":{"get":{"description":"Returns the current terraform state.\n","operationId":"GetTerraformCurrentStateData","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get current terraform","tags":["runners","runners/runner"]},"post":{"description":"Update a terraform state.\n","operationId":"UpdateTerraformState","requestBody":{"content":{"application/json":{"schema":{}}},"description":"Terraform state data","required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update terraform state","tags":["runners","runners/runner"]}},"/v1/terraform-workspace":{"post":{"description":"Create a terraform workspace.\n","operationId":"CreateTerraformWorkspace","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateTerraformWorkspaceRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspace"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create terraform workspace","tags":["runners"]}},"/v1/terraform-workspaces":{"get":{"description":"Returns all terraform workspaces.\n","operationId":"GetTerraformWorkspaces","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get  terraform workspaces","tags":["runners","runners/runner"]},"post":{"description":"Create a terraform workspace.\n","operationId":"CreateTerraformWorkspaceV2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateTerraformWorkspaceRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspace"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create terraform workspace","tags":["runners","runners/runner"]}},"/v1/terraform-workspaces/{workspace_id}":{"delete":{"description":"Delete a terraform workspace.\n","operationId":"DeleteTerraformWorkspace","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"delete terraform workspace","tags":["runners","runners/runner"]},"get":{"description":"Return a terraform workspace by id.\n","operationId":"GetTerraformWorkspace","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspace"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get  terraform workspace","tags":["runners","runners/runner"]}},"/v1/terraform-workspaces/{workspace_id}/lock":{"get":{"description":"Returns the lock status for a terraform workspace.\n","operationId":"GetTerraformWorkspaceLock","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceLock"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform workspace lock","tags":["runners"]},"post":{"description":"Lock a terraform workspace to prevent concurrent modifications.\n","operationId":"LockTerraformWorkspace","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"job ID","in":"query","name":"job_id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"description":"terraform workspace lock ","required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"lock terraform state","tags":["runners","runners/runner"]}},"/v1/terraform-workspaces/{workspace_id}/state-json":{"get":{"description":"Returns terraform states in JSON format.\n","operationId":"GetTerraformWorkspaceStatesJSONV2","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspaceStateJSON"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform states json","tags":["runners"]}},"/v1/terraform-workspaces/{workspace_id}/state-json/{state_id}":{"get":{"description":"Return a terraform state in JSON format by id.\n","operationId":"GetTerraformWorkspaceStatesJSONByIDV2","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"terraform state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state json by id. This output is same as \"terraform show --json\"","tags":["runners"]}},"/v1/terraform-workspaces/{workspace_id}/state-json/{state_id}/resources":{"get":{"description":"Returns terraform state resources in JSON format.\n","operationId":"GetTerraformWorkspaceStateJSONResourcesV2","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state resources. This output is similar to \"terraform state list\"","tags":["runners"]}},"/v1/terraform-workspaces/{workspace_id}/states":{"get":{"description":"Returns terraform states for an install.\n","operationId":"GetTerraformStatesV2","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform states","tags":["runners"]}},"/v1/terraform-workspaces/{workspace_id}/states/{state_id}":{"get":{"description":"Return a terraform state by id.\n","operationId":"GetTerraformWorkspaceStateByIDV2","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}},{"description":"state ID","in":"path","name":"state_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get terraform state by ID","tags":["runners"]}},"/v1/terraform-workspaces/{workspace_id}/unlock":{"post":{"description":"Unlock a terraform workspace.\n","operationId":"UnlockTerraformWorkspace","parameters":[{"description":"workspace ID","in":"path","name":"workspace_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"description":"terraform workspace unlock ","required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.TerraformWorkspaceState"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"unlock terraform workspace","tags":["runners","runners/runner"]}},"/v1/vcs/connection-callback":{"post":{"description":"Handle VCS connection callback for OAuth flow.\n","operationId":"CreateVCSConnectionCallback","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateConnectionCallbackRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.VCSConnection"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"summary":"public connection to create a vcs connection via a callback","tags":["vcs"]}},"/v1/vcs/connections":{"get":{"description":"Returns all VCS connections for the provided organization.\n","operationId":"GetOrgVCSConnections","parameters":[{"description":"offset of results to return","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"limit of results to return","in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"description":"page number of results to return","in":"query","name":"page","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.VCSConnection"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get vcs connection for an org","tags":["vcs"]},"post":{"description":"Create a VCS connection for version control integration.\n","operationId":"CreateVCSConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateConnectionRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.VCSConnection"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"create a vcs connection for Github","tags":["vcs"]}},"/v1/vcs/connections/{connection_id}":{"delete":{"description":"Delete a VCS connection.\n","operationId":"DeleteVCSConnection","parameters":[{"description":"Connection ID","in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Deletes a VCS connection","tags":["vcs"]},"get":{"description":"Return a VCS connection by id.\n","operationId":"GetVCSConnection","parameters":[{"description":"connection ID","in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.VCSConnection"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"returns a vcs connection for an org","tags":["vcs"]}},"/v1/vcs/connections/{connection_id}/check-status":{"get":{"description":"Check the real-time status of a VCS (GitHub App) connection.\n\nThis endpoint queries GitHub's API directly to fetch the current installation status, including:\n- Active/Suspended state\n- Account information\n- Permissions\n- Suspension details (if applicable)\n\n**Important**: This endpoint always fetches fresh data from GitHub (no caching) to ensure accurate status information.\n\n## Response Status Values\n\n- `active`: The GitHub App installation is active and functioning\n- `suspended`: The installation has been suspended (see `suspended_at` and `suspended_by` for details)\n- `unknown`: Unable to determine status (GitHub API error - see `error` field)\n\n## Use Cases\n\n- Troubleshooting connection issues\n- Monitoring installation health\n- Detecting suspended or revoked installations\n- Validating permissions before operations\n","operationId":"CheckVCSConnectionStatus","parameters":[{"description":"connection ID","in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.VCSConnectionStatusResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"check the real-time status of a VCS connection","tags":["vcs"]}},"/v1/vcs/connections/{connection_id}/repos":{"get":{"description":"Lists all repositories accessible by a GitHub App installation (VCS connection)","parameters":[{"description":"VCS Connection ID","in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.VCSConnectionReposResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"List VCS connection repositories","tags":["vcs"]}},"/v1/workflows/{workflow_id}":{"get":{"description":"Return a workflow.\n","operationId":"GetWorkflow","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Workflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a workflow","tags":["installs"]},"patch":{"description":"Update a workflow configuration.\n","operationId":"UpdateWorkflow","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.UpdateWorkflowRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.Workflow"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"update a workflow","tags":["installs"]}},"/v1/workflows/{workflow_id}/cancel":{"post":{"description":"Cancel a running workflow execution.\n","operationId":"CancelWorkflow","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"cancel an ongoing workflow","tags":["installs"]}},"/v1/workflows/{workflow_id}/retry":{"post":{"deprecated":true,"description":"Retry a workflow execution by id.\n","operationId":"RetryOwnerWorkflowByID","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowByIDRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowByIDResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"rerun the workflow steps starting from input step id, can be used to retry a failed step","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps":{"get":{"description":"Return all steps for a workflow.\n","operationId":"GetWorkflowSteps","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app.WorkflowStep"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get all of the steps for a given workflow","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps/{step_id}":{"get":{"description":"Return a single workflow step.\n","operationId":"GetWorkflowStep","parameters":[{"description":"workflow id","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"step_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.WorkflowStep"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a workflow step","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps/{step_id}/approvals/{approval_id}":{"get":{"description":"Return a workflow step approval by id.\n","operationId":"GetWorkflowStepApproval","parameters":[{"description":"workflow id","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"step_id","required":true,"schema":{"type":"string"}},{"description":"approval id","in":"path","name":"approval_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app.WorkflowStepApproval"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get an workflow step approval","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps/{step_id}/approvals/{approval_id}/contents":{"get":{"description":"Return the contents of a json plan for an approval (compressed).\n","operationId":"GetWorkflowStepApprovalContents","parameters":[{"description":"workflow id","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"step_id","required":true,"schema":{"type":"string"}},{"description":"approval id","in":"path","name":"approval_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"Content-Encoding":{"description":"gzip","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"get a workflow step approval contents","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps/{step_id}/approvals/{approval_id}/response":{"post":{"description":"Create a response for an approval for an action workflow step.\n","operationId":"CreateWorkflowStepApprovalResponse","parameters":[{"description":"workflow id","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"description":"step id","in":"path","name":"step_id","required":true,"schema":{"type":"string"}},{"description":"approval id","in":"path","name":"approval_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateWorkflowStepApprovalResponseRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.CreateWorkflowStepApprovalResponseResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"Create an approval response for a workflow step.","tags":["installs"]}},"/v1/workflows/{workflow_id}/steps/{step_id}/retry":{"post":{"description":"Retry a workflow execution by id.\n","operationId":"RetryWorkflowStep","parameters":[{"description":"workflow ID","in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"description":"step ID","in":"path","name":"step_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowStepRequest"}}},"description":"Input","required":true,"x-originalParamName":"req"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/service.RetryWorkflowByIDResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stderr.ErrResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKey":[]},{"OrgID":[]}],"summary":"rerun the workflow steps starting from input step id, can be used to retry a failed step","tags":["installs"]}}},"servers":[{"url":"https://api.nuon.co/"}],"tags":[{"description":"apps","name":"apps"},{"description":"runners","name":"runners"},{"description":"actions","name":"actions"},{"description":"components","name":"components"},{"description":"releases","name":"releases"},{"description":"general","name":"general"},{"description":"auth","name":"auth"},{"description":"actions/runner","name":"actions/runner"},{"description":"installs","name":"installs"},{"description":"runners/runner","name":"runners/runner"},{"description":"orgs","name":"orgs"},{"description":"vcs","name":"vcs"},{"description":"accounts","name":"accounts"}]}