diff --git a/.gitignore b/.gitignore index a8bbde7b..0e9c8de6 100755 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,6 @@ node_modules .DS_Store lib -types +/types *.log diff --git a/package.json b/package.json index 8ce7616d..76fd035a 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "lib/server/platform-api.js", "types": "types/index.d.ts", "scripts": { - "build": "rm -rf ./types && rm -rf ./lib && npm run type-gen && webpack --env.mode=build && mv types/src/* types/ && rm -r types/src", + "build": "rm -rf ./types && rm -rf ./lib && webpack --env.mode=build && mv types/src/* types/ && rm -r types/src", "dev": "webpack --progress --colors --watch --env.mode=dev", "test": "npm run test-web && npm run test-node", "test-web": "mocha -r mock-local-storage ./test/.setup.js ./test/**/*.spec.js", diff --git a/src/types/model.ts b/src/types/model.ts new file mode 100644 index 00000000..6c6b0c7d --- /dev/null +++ b/src/types/model.ts @@ -0,0 +1,10518 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/me": { + /** Retrieve information about the currently logged-in user (the user associated with the access token). */ + get: operations["get-current-user-deprecated"]; + }; + "/ssh_keys/{key_id}": { + get: operations["get-ssh-key"]; + delete: operations["delete-ssh-key"]; + }; + "/ssh_keys": { + post: operations["create-ssh-key"]; + }; + "/plans": { + /** Retrieve information about plans and pricing on Platform.sh. */ + get: operations["list-plans"]; + }; + "/locate": { + /** + * Returns a paginated list of all the projects associated with a given UUID. + * The returned information includes each project's respective endpoint and + * management console URLs, as well as information about the project owner. + */ + get: operations["locate-projects"]; + }; + "/locate/{projectId}": { + /** Returns a project's endpoint and management console URLs, as well as information about the project owner. */ + get: operations["locate-project"]; + }; + "/profiles": { + get: operations["list-profiles"]; + }; + "/profiles/{userId}": { + get: operations["get-profile"]; + /** Update a user profile, supplying one or more key/value pairs to to change. */ + patch: operations["update-profile"]; + }; + "/profiles/{userId}/address": { + get: operations["get-address"]; + /** Update a user address, supplying one or more key/value pairs to to change. */ + patch: operations["update-address"]; + }; + "/profile/{uuid}/picture": { + post: operations["create-profile-picture"]; + delete: operations["delete-profile-picture"]; + }; + "/tickets": { + get: operations["list-tickets"]; + post: operations["create-ticket"]; + }; + "/tickets/{ticket_id}": { + patch: operations["solve-ticket"]; + }; + "/tickets/priority": { + get: operations["list-ticket-priorities"]; + }; + "/tickets/category": { + get: operations["list-ticket-categories"]; + }; + "/organizations/{organization_id}/invitations": { + /** Returns a list of all pending invitations to an organization. */ + get: operations["list-org-invites"]; + /** Creates an invitation to an organization for a user with the specified email address. */ + post: operations["create-org-invite"]; + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + }; + "/organizations/{organization_id}/invitations/{invitation_id}": { + /** Cancels the specified invitation. */ + delete: operations["cancel-org-invite"]; + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the invitation. */ + invitation_id: components["parameters"]["InvitationID"]; + }; + }; + }; + "/projects/{project_id}/invitations": { + /** Returns a list of all pending invitations to a project. */ + get: operations["list-project-invites"]; + /** Creates an invitation to a project for a user with the specified email address. */ + post: operations["create-project-invite"]; + parameters: { + path: { + /** The ID of the project. */ + project_id: components["parameters"]["ProjectID"]; + }; + }; + }; + "/projects/{project_id}/invitations/{invitation_id}": { + /** Cancels the specified invitation. */ + delete: operations["cancel-project-invite"]; + parameters: { + path: { + /** The ID of the project. */ + project_id: components["parameters"]["ProjectID"]; + /** The ID of the invitation. */ + invitation_id: components["parameters"]["InvitationID"]; + }; + }; + }; + "/ref/users": { + /** Retrieves a list of users referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the _links object with a key like ref:users:0. */ + get: operations["list-referenced-users"]; + }; + "/users/me": { + /** Retrieves the current user, determined from the used access token. */ + get: operations["get-current-user"]; + }; + "/users/email={email}": { + /** Retrieves a user matching the specified email address. */ + get: operations["get-user-by-email-address"]; + parameters: { + path: { + /** The user's email address. */ + email: string; + }; + }; + }; + "/users/username={username}": { + /** Retrieves a user matching the specified username. */ + get: operations["get-user-by-username"]; + parameters: { + path: { + /** The user's username. */ + username: string; + }; + }; + }; + "/users/{user_id}": { + /** Retrieves the specified user. */ + get: operations["get-user"]; + /** Updates the specified user. */ + patch: operations["update-user"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/activate": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/deactivate": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/emailaddress": { + /** Requests a reset of the user's email address. A confirmation email will be sent to the new address when the request is accepted. */ + post: operations["reset-email-address"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/resetpassword": { + /** Requests a reset of the user's password. A password reset email will be sent to the user when the request is accepted. */ + post: operations["reset-password"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/api-tokens": { + /** Retrieves a list of API tokens associated with a single user. */ + get: operations["list-api-tokens"]; + /** Creates an API token */ + post: operations["create-api-token"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/api-tokens/{token_id}": { + /** Retrieves the specified API token. */ + get: operations["get-api-token"]; + /** Deletes an API token */ + delete: operations["delete-api-token"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + /** The ID of the token. */ + token_id: string; + }; + }; + }; + "/users/{user_id}/connections": { + /** Retrieves a list of connections associated with a single user. */ + get: operations["list-login-connections"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/connections/{provider}": { + /** Retrieves the specified connection. */ + get: operations["get-login-connection"]; + /** Deletes the specified connection. */ + delete: operations["delete-login-connection"]; + parameters: { + path: { + /** The name of the federation provider. */ + provider: string; + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/totp": { + /** Retrieves TOTP enrollment information. */ + get: operations["get-totp-enrollment"]; + /** Confirms the given TOTP enrollment. */ + post: operations["confirm-totp-enrollment"]; + /** Withdraws from the TOTP enrollment. */ + delete: operations["withdraw-totp-enrollment"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/users/{user_id}/codes": { + /** Re-creates recovery codes for the MFA enrollment. */ + post: operations["recreate-recovery-codes"]; + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + }; + "/projects/{projectId}": { + /** Retrieve the details of a single project. */ + get: operations["get-projects"]; + /** Delete the entire project. */ + delete: operations["delete-projects"]; + /** Update the details of an existing project. */ + patch: operations["update-projects"]; + }; + "/projects/{projectId}/access": { + /** + * Retrieve a list of objects specifying the users with access to a project + * and those users' roles. + */ + get: operations["list-projects-access"]; + /** + * Add a user to a project's access control list + * + * > **Note**: + * > + * > For more granular control and invitation by email, use [`/invitations`](#tag/Invitation). + */ + post: operations["create-projects-access"]; + }; + "/projects/{projectId}/access/{projectAccessId}": { + /** + * Retrieve the details of a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + get: operations["get-projects-access"]; + /** + * Remove a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + delete: operations["delete-projects-access"]; + /** + * Change the role of a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + patch: operations["update-projects-access"]; + }; + "/projects/{projectId}/activities": { + /** + * Retrieve a project's activity log including logging actions in all + * environments within a project. This returns a list of objects + * with records of actions such as: + * + * - Commits being pushed to the repository + * - A new environment being branched out from the specified environment + * - A snapshot being created of the specified environment + * + * The object includes a timestamp of when the action occurred + * (`created_at`), when the action concluded (`updated_at`), + * the current `state` of the action, the action's completion + * percentage (`completion_percent`), the `environments` it + * applies to and other related information in + * the `payload`. + * + * The contents of the `payload` varies based on the `type` of the + * activity. For example: + * + * - An `environment.branch` action's `payload` can contain objects + * representing the environment's `parent` environment and the + * branching action's `outcome`. + * + * - An `environment.push` action's `payload` can contain objects + * representing the `environment`, the specific `commits` included in + * the push, and the `user` who pushed. + */ + get: operations["list-projects-activities"]; + }; + "/projects/{projectId}/activities/{activityId}": { + /** + * Retrieve a single activity log entry as specified by an + * `id` returned by the + * [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget) + * endpoint. See the documentation on that endpoint for details about + * the information this endpoint can return. + */ + get: operations["get-projects-activities"]; + }; + "/projects/{projectId}/activities/{activityId}/cancel": { + /** + * Cancel a single activity as specified by an `id` returned by the + * [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget) + * endpoint. + * + * Please note that not all activities are cancelable. + */ + post: operations["action-projects-activities-cancel"]; + }; + "/projects/{projectId}/capabilities": { + /** + * Get a list of capabilities on a project, as defined by the billing system. + * For instance, one special capability that could be defined on a project is + * large development environments. + */ + get: operations["get-projects-capabilities"]; + }; + "/projects/{projectId}/certificates": { + /** + * Retrieve a list of objects representing the SSL certificates + * associated with a project. + */ + get: operations["list-projects-certificates"]; + /** Add a single SSL certificate to a project. */ + post: operations["create-projects-certificates"]; + }; + "/projects/{projectId}/certificates/{certificateId}": { + /** + * Retrieve information about a single SSL certificate + * associated with a project. + */ + get: operations["get-projects-certificates"]; + /** Delete a single SSL certificate associated with a project. */ + delete: operations["delete-projects-certificates"]; + /** Update a single SSL certificate associated with a project. */ + patch: operations["update-projects-certificates"]; + }; + "/projects/{projectId}/clear_build_cache": { + /** + * On rare occasions, a project's build cache can become corrupted. This + * endpoint will entirely flush the project's build cache. More information + * on [clearing the build cache can be found in our user documentation.](https://docs.platform.sh/development/troubleshoot.html#clear-the-build-cache) + */ + post: operations["action-projects-clear-build-cache"]; + }; + "/projects/{projectId}/deployments": { + /** The deployment target information for the project. */ + get: operations["list-projects-deployments"]; + /** Set the deployment target information for a project. */ + post: operations["create-projects-deployments"]; + }; + "/projects/{projectId}/deployments/{deploymentTargetConfigurationId}": { + /** Get a single deployment target configuration of a project. */ + get: operations["get-projects-deployments"]; + /** Delete a single deployment target configuration associated with a specific project. */ + delete: operations["delete-projects-deployments"]; + patch: operations["update-projects-deployments"]; + }; + "/projects/{projectId}/domains": { + /** + * Retrieve a list of objects representing the user-specified domains + * associated with a project. Note that this does *not* return the + * domains automatically assigned to a project that appear under + * "Access site" on the user interface. + */ + get: operations["list-projects-domains"]; + /** + * Add a single domain to a project. + * If the `ssl` field is left blank without an object containing + * a PEM-encoded SSL certificate, a certificate will + * [be provisioned for you via Let's Encrypt.](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt) + */ + post: operations["create-projects-domains"]; + }; + "/projects/{projectId}/domains/{domainId}": { + /** + * Retrieve information about a single user-specified domain + * associated with a project. + */ + get: operations["get-projects-domains"]; + /** Delete a single user-specified domain associated with a project. */ + delete: operations["delete-projects-domains"]; + /** + * Update the information associated with a single user-specified + * domain associated with a project. + */ + patch: operations["update-projects-domains"]; + }; + "/projects/{projectId}/environment-types": { + /** List all available environment types */ + get: operations["list-projects-environment-types"]; + }; + "/projects/{projectId}/environment-types/{environmentTypeId}": { + /** Lists the endpoints used to retrieve info about the environment type. */ + get: operations["get-environment-type"]; + }; + "/projects/{projectId}/environment-types/{environmentTypeId}/access": { + /** + * Retrieve a list of objects for users and their roles for the + * given environment type. + */ + get: operations["list-environment-type-access"]; + /** + * Add a user to an environment type's access control list + * + * > **Note**: + * > + * > For more granular control and invitation by email, use [`/invitations`](#tag/Invitation). + */ + post: operations["create-environment-type-access"]; + }; + "/projects/{projectId}/environment-types/{environmentTypeId}/access/{environmentTypeAccessId}": { + /** + * Retrieve the details of a user from an environment type's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get environment type's access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + get: operations["get-environment-type-access"]; + /** + * Remove a user from an environment type's access control list. + * using the `id` of the entry in the access control list + * retrieved with the [Get environment type access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + delete: operations["delete-environment-type-access"]; + /** + * Update the role of a user from an environment type's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get environment access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + patch: operations["update-environment-type-access"]; + }; + "/projects/{projectId}/environments": { + /** + * Retrieve a list of a project's existing environments and the + * information associated with each environment. + */ + get: operations["list-projects-environments"]; + /** + * Create a new environment on a project and define the configuration + * information associated with the environment. + */ + post: operations["create-projects-environments"]; + }; + "/projects/{projectId}/environments/{environmentId}": { + /** Retrieve the details of a single existing environment. */ + get: operations["get-environment"]; + /** Delete a specified environment. */ + delete: operations["delete-environment"]; + /** Update the details of a single existing environment. */ + patch: operations["update-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/access": { + /** + * Retrieve a list of objects specifying the users + * with access to an environment and those users' roles. + * This will be effectively listing the access for the environment **type** of the environment. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + get: operations["list-environment-access"]; + /** + * Add a user to an environment's access control list + * + * This will be effectively adding a user to the environment **type** access control list. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + post: operations["create-environment-access"]; + }; + "/projects/{projectId}/environments/{environmentId}/access/{environmentAccessId}": { + /** + * Retrieve the details of a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively listing the access for the environment **type** of the environment. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + get: operations["get-environment-access"]; + /** + * Remove a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively removing the user from the environment **type** control list, + * affecting the access to all environments of the same type. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + delete: operations["delete-environment-access"]; + /** + * Update the role of a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively updating the user from the environment **type** control list, + * affecting the access to all environments of the same type. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + patch: operations["update-environment-access"]; + }; + "/projects/{projectId}/environments/{environmentId}/activate": { + /** Set the specified environment's status to active */ + post: operations["activate-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/activities": { + /** + * Retrieve an environment's activity log. This returns a list of object + * with records of actions such as: + * + * - Commits being pushed to the repository + * - A new environment being branched out from the specified environment + * - A snapshot being created of the specified environment + * + * The object includes a timestamp of when the action occurred + * (`created_at`), when the action concluded (`updated_at`), + * the current `state` of the action, the action's completion + * percentage (`completion_percent`), and other related information in + * the `payload`. + * + * The contents of the `payload` varies based on the `type` of the + * activity. For example: + * + * - An `environment.branch` action's `payload` can contain objects + * representing the `parent` environment and the branching action's + * `outcome`. + * + * - An `environment.push` action's `payload` can contain objects + * representing the `environment`, the specific `commits` included in + * the push, and the `user` who pushed. + */ + get: operations["list-projects-environments-activities"]; + }; + "/projects/{projectId}/environments/{environmentId}/activities/{activityId}": { + /** + * Retrieve a single environment activity entry as specified by an + * `id` returned by the + * [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget) + * endpoint. See the documentation on that endpoint for details about + * the information this endpoint can return. + */ + get: operations["get-projects-environments-activities"]; + }; + "/projects/{projectId}/environments/{environmentId}/activities/{activityId}/cancel": { + /** + * Cancel a single activity as specified by an `id` returned by the + * [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget) + * endpoint. + * + * Please note that not all activities are cancelable. + */ + post: operations["action-projects-environments-activities-cancel"]; + }; + "/projects/{projectId}/environments/{environmentId}/backup": { + /** + * Trigger a new snapshot of an environment to be created. See the + * [Snapshot and Restore](https://docs.platform.sh/administration/snapshot-and-restore.html) + * section of the documentation for more information. + */ + post: operations["backup-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/backups": { + /** Retrieve a list of objects representing backups of this environment. */ + get: operations["list-projects-environments-backups"]; + }; + "/projects/{projectId}/environments/{environmentId}/backups/{backupId}": { + /** + * Get the details of a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + get: operations["get-projects-environments-backups"]; + /** + * Delete a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + delete: operations["delete-projects-environments-backups"]; + }; + "/projects/{projectId}/environments/{environmentId}/backups/{backupId}/restore": { + /** + * Restore a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + post: operations["restore-backup"]; + }; + "/projects/{projectId}/environments/{environmentId}/branch": { + /** Create a new environment as a branch of the current environment. */ + post: operations["branch-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/deactivate": { + /** + * Destroy all services and data running on this environment so that + * only the Git branch remains. The environment can be reactivated + * later at any time; reactivating an environment will sync data + * from the parent environment and redeploy. + * + * **NOTE: ALL DATA IN THIS ENVIRONMENT WILL BE IRREVOCABLY LOST** + */ + post: operations["deactivate-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/deployments": { + /** + * Retrieve the read-only configuration of an environment's deployment. + * The returned information is everything required to + * recreate a project's current deployment. + * + * More specifically, the objects + * returned by this endpoint contain the configuration derived from the + * repository's YAML configuration files: `.platform.app.yaml`, + * `.platform/services.yaml`, and `.platform/routes.yaml`. + * + * Additionally, any values deriving from environment variables, the + * domains attached to a project, project access settings, etc. are + * included here. + * + * This endpoint currently returns a list containing a single deployment + * configuration with an `id` of `current`. This may be subject to change + * in the future. + */ + get: operations["list-projects-environments-deployments"]; + }; + "/projects/{projectId}/environments/{environmentId}/deployments/{deploymentId}": { + /** + * Retrieve a single deployment configuration with an id of `current`. This may be subject to change in the future. + * Only `current` can be queried. + */ + get: operations["get-projects-environments-deployments"]; + }; + "/projects/{projectId}/environments/{environmentId}/domains": { + /** + * Retrieve a list of objects representing the user-specified domains + * associated with an environment. Note that this does *not* return the + * `.platformsh.site` subdomains, which are automatically assigned to + * the environment. + */ + get: operations["list-projects-environments-domains"]; + /** + * Add a single domain to an environment. + * If the environment is not production, the `replacement_for` field + * is required, which binds a new domain to an existing one from a + * production environment. + * If the `ssl` field is left blank without an object containing + * a PEM-encoded SSL certificate, a certificate will + * [be provisioned for you via Let's Encrypt](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt). + */ + post: operations["create-projects-environments-domains"]; + }; + "/projects/{projectId}/environments/{environmentId}/domains/{domainId}": { + /** + * Retrieve information about a single user-specified domain + * associated with an environment. + */ + get: operations["get-projects-environments-domains"]; + /** Delete a single user-specified domain associated with an environment. */ + delete: operations["delete-projects-environments-domains"]; + /** + * Update the information associated with a single user-specified + * domain associated with an environment. + */ + patch: operations["update-projects-environments-domains"]; + }; + "/projects/{projectId}/environments/{environmentId}/initialize": { + /** + * Initialize and configure a new environment with an existing repository. + * The payload is the url of a git repository with a profile name: + * + * ``` + * { + * "repository": "git@github.com:platformsh/a-project-template.git@master", + * "profile": "Example Project", + * "files": [ + * { + * "mode": 0600, + * "path": "config.json", + * "contents": "XXXXXXXX" + * } + * ] + * } + * ``` + * It can optionally carry additional files that will be committed to the + * repository, the POSIX file mode to set on each file, and the base64-encoded + * contents of each file. + * + * This endpoint can also add a second repository + * URL in the `config` parameter that will be added to the contents of the first. + * This allows you to put your application in one repository and the Platform.sh + * YAML configuration files in another. + */ + post: operations["initialize-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/merge": { + /** + * Merge an environment into its parent. This means that code changes + * from the branch environment will be merged into the parent branch, and + * the parent branch will be rebuilt and deployed with the new code changes, + * retaining the existing data in the parent environment. + */ + post: operations["merge-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/redeploy": { + /** Trigger the redeployment sequence of an environment. */ + post: operations["redeploy-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/routes": { + /** + * Retrieve a list of objects containing route definitions for + * a specific environment. The definitions returned by this endpoint + * are those present in an environment's `.platform/routes.yaml` file. + */ + get: operations["list-projects-environments-routes"]; + /** + * Add a new route to the specified environment. More information about + * how routes are defined can be found in the [Routes](https://docs.platform.sh/configuration/routes.html) + * section of the documentation. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + post: operations["create-projects-environments-routes"]; + }; + "/projects/{projectId}/environments/{environmentId}/routes/{routeId}": { + /** + * Get details of a route from an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + */ + get: operations["get-projects-environments-routes"]; + /** + * Remove a route from an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + delete: operations["delete-projects-environments-routes"]; + /** + * Update a route in an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + patch: operations["update-projects-environments-routes"]; + }; + "/projects/{projectId}/environments/{environmentId}/source-operation": { + /** + * This endpoint triggers a source code operation as defined in the `source.operations` + * key in a project's `.platform.app.yaml` configuration. More information + * on source code operations is + * [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html). + */ + post: operations["run-source-operation"]; + }; + "/projects/{projectId}/environments/{environmentId}/source-operations": { + /** + * Lists all the source operations, defined in `.platform.app.yaml`, that are available in an environment. + * More information on source code operations is + * [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html). + */ + get: operations["list-projects-environments-source-operations"]; + }; + "/projects/{projectId}/environments/{environmentId}/synchronize": { + /** + * This synchronizes the code and/or data of an environment with that of + * its parent, then redeploys the environment. Synchronization is only + * possible if a branch has no unmerged commits and it can be fast-forwarded. + * + * If data synchronization is specified, the data in the environment will + * be overwritten with that of its parent. + */ + post: operations["synchronize-environment"]; + }; + "/projects/{projectId}/environments/{environmentId}/variables": { + /** + * Retrieve a list of objects representing the user-defined variables + * within an environment. + */ + get: operations["list-projects-environments-variables"]; + /** + * Add a variable to an environment. The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * Additionally, the inheritability of an environment variable can be + * determined through the `is_inheritable` flag (default: true). + * See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables) + * section in our documentation for more information. + */ + post: operations["create-projects-environments-variables"]; + }; + "/projects/{projectId}/environments/{environmentId}/variables/{variableId}": { + /** Retrieve a single user-defined environment variable. */ + get: operations["get-projects-environments-variables"]; + /** Delete a single user-defined environment variable. */ + delete: operations["delete-projects-environments-variables"]; + /** + * Update a single user-defined environment variable. + * The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * Additionally, the inheritability of an environment variable can be + * determined through the `is_inheritable` flag (default: true). + * See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables) + * section in our documentation for more information. + */ + patch: operations["update-projects-environments-variables"]; + }; + "/projects/{projectId}/git/blobs/{repositoryBlobId}": { + /** + * Retrieve, by hash, an object representing a blob in the repository + * backing a project. This endpoint allows direct read-only access + * to the contents of files in a repo. It returns the file in the + * `content` field of the response object, encoded according to the + * format in the `encoding` field, e.g. `base64`. + */ + get: operations["get-projects-git-blobs"]; + }; + "/projects/{projectId}/git/commits/{repositoryCommitId}": { + /** + * Retrieve, by hash, an object representing a commit in the repository backing + * a project. This endpoint functions similarly to `git cat-file -p `. + * The returned object contains the hash of the Git tree that it + * belongs to, as well as the ID of parent commits. + * + * The commit represented by a parent ID can be retrieved using this + * endpoint, while the tree state represented by this commit can + * be retrieved using the + * [Get a tree object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1trees~1%7BrepositoryTreeId%7D%2Fget) + * endpoint. + */ + get: operations["get-projects-git-commits"]; + }; + "/projects/{projectId}/git/refs": { + /** + * Retrieve a list of `refs/*` in the repository backing a project. + * This endpoint functions similarly to `git show-ref`, with each + * returned object containing a `ref` field with the ref's name, + * and an object containing the associated commit ID. + * + * The returned commit ID can be used with the + * [Get a commit object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1commits~1%7BrepositoryCommitId%7D%2Fget) + * endpoint to retrieve information about that specific commit. + */ + get: operations["list-projects-git-refs"]; + }; + "/projects/{projectId}/git/refs/{repositoryRefId}": { + /** + * Retrieve the details of a single `refs` object in the repository + * backing a project. This endpoint functions similarly to + * `git show-ref `, although the pattern must be a full ref `id`, + * rather than a matching pattern. + * + * *NOTE: The `{repositoryRefId}` must be properly escaped.* + * That is, the ref `refs/heads/master` is accessible via + * `/projects/{projectId}/git/refs/heads%2Fmaster`. + */ + get: operations["get-projects-git-refs"]; + }; + "/projects/{projectId}/git/trees/{repositoryTreeId}": { + /** + * Retrieve, by hash, the tree state represented by a commit. + * The returned object's `tree` field contains a list of files and + * directories present in the tree. + * + * Directories in the tree can be recursively retrieved by this endpoint + * through their hashes. Files in the tree can be retrieved by the + * [Get a blob object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1blobs~1%7BrepositoryBlobId%7D%2Fget) + * endpoint. + */ + get: operations["get-projects-git-trees"]; + }; + "/projects/{projectId}/integrations": { + get: operations["list-projects-integrations"]; + post: operations["create-projects-integrations"]; + }; + "/projects/{projectId}/integrations/{integrationId}": { + get: operations["get-projects-integrations"]; + delete: operations["delete-projects-integrations"]; + patch: operations["update-projects-integrations"]; + }; + "/projects/{projectId}/settings": { + /** Retrieve the global settings for a project. */ + get: operations["get-projects-settings"]; + /** Update one or more project-level settings. */ + patch: operations["update-projects-settings"]; + }; + "/projects/{projectId}/system": { + /** Output information for the project. */ + get: operations["get-projects-system"]; + }; + "/projects/{projectId}/system/restart": { + /** Force the Git server to restart. */ + post: operations["action-projects-system-restart"]; + }; + "/projects/{projectId}/variables": { + /** + * Retrieve a list of objects representing the user-defined variables + * within a project. + */ + get: operations["list-projects-variables"]; + /** + * Add a variable to a project. The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * See the [Variables](https://docs.platform.sh/development/variables.html#project-variables) + * section in our documentation for more information. + */ + post: operations["create-projects-variables"]; + }; + "/projects/{projectId}/variables/{projectVariableId}": { + /** Retrieve a single user-defined project variable. */ + get: operations["get-projects-variables"]; + /** Delete a single user-defined project variable. */ + delete: operations["delete-projects-variables"]; + /** + * Update a single user-defined project variable. + * The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * See the [Variables](https://docs.platform.sh/development/variables.html#project-variables) + * section in our documentation for more information. + */ + patch: operations["update-projects-variables"]; + }; + "/ref/organizations": { + /** Retrieves a list of organizations referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the _links object with a key like ref:organizations:0. */ + get: operations["list-referenced-orgs"]; + }; + "/users/{user_id}/organizations": { + /** Retrieves organizations that the specified user is a member of. */ + get: operations["list-user-orgs"]; + }; + "/organizations": { + /** Non-admin users will only see organizations they are members of. */ + get: operations["list-orgs"]; + /** Creates a new organization. */ + post: operations["create-org"]; + }; + "/organizations/{organization_id}": { + /** Retrieves the specified organization. */ + get: operations["get-org"]; + /** Deletes the specified organization. */ + delete: operations["delete-org"]; + /** Updates the specified organization. */ + patch: operations["update-org"]; + }; + "/organizations/{organization_id}/members": { + /** Accessible to organization owners and members with the "manage members" permission. */ + get: operations["list-org-members"]; + /** Creates a new organization member. */ + post: operations["create-org-member"]; + }; + "/organizations/{organization_id}/members/{member_id}": { + /** Retrieves the specified organization member. */ + get: operations["get-org-member"]; + /** Deletes the specified organization member. */ + delete: operations["delete-org-member"]; + /** Updates the specified organization member. */ + patch: operations["update-org-member"]; + }; + "/organizations/{organization_id}/address": { + /** Retrieves the address for the specified organization. */ + get: operations["get-org-address"]; + /** Updates the address for the specified organization. */ + patch: operations["update-org-address"]; + }; + "/organizations/{organization_id}/invoices": { + /** Retrieves a list of invoices for the specified organization. */ + get: operations["list-org-invoices"]; + }; + "/organizations/{organization_id}/invoices/{invoice_id}": { + /** Retrieves an invoice for the specified organization. */ + get: operations["get-org-invoice"]; + }; + "/organizations/{organization_id}/profile": { + /** Retrieves the profile for the specified organization. */ + get: operations["get-org-profile"]; + /** Updates the profile for the specified organization. */ + patch: operations["update-org-profile"]; + }; + "/organizations/{organization_id}/orders": { + /** Retrieves orders for the specified organization. */ + get: operations["list-org-orders"]; + }; + "/organizations/{organization_id}/orders/{order_id}": { + /** Retrieves an order for the specified organization. */ + get: operations["get-org-order"]; + }; + "/organizations/{organization_id}/records/plan": { + /** Retrieves plan records for the specified organization. */ + get: operations["list-org-plan-records"]; + }; + "/organizations/{organization_id}/records/usage": { + /** Retrieves usage records for the specified organization. */ + get: operations["list-org-usage-records"]; + }; + "/organizations/{organization_id}/subscriptions": { + /** Retrieves subscriptions for the specified organization. */ + get: operations["list-org-subscriptions"]; + /** Creates a subscription for the specified organization. */ + post: operations["create-org-subscription"]; + }; + "/organizations/{organization_id}/subscriptions/{subscription_id}": { + /** Retrieves a subscription for the specified organization. */ + get: operations["get-org-subscription"]; + /** Deletes a subscription for the specified organization. */ + delete: operations["delete-org-subscription"]; + /** Updates a subscription for the specified organization. */ + patch: operations["update-org-subscription"]; + }; + "/organizations/{organization_id}/subscriptions/estimate": { + get: operations["estimate-new-org-subscription"]; + }; + "/organizations/{organization_id}/subscriptions/{subscription_id}/estimate": { + get: operations["estimate-org-subscription"]; + }; + "/organizations/{organization_id}/vouchers": { + /** Retrieves vouchers for the specified organization. */ + get: operations["list-org-vouchers"]; + }; + "/organizations/{organization_id}/vouchers/apply": { + /** Applies a voucher for the specified organization, and refreshes the currently open order. */ + post: operations["apply-org-voucher"]; + }; + "/organizations/{organization_id}/regions": { + /** Retrieves the list of available regions for the specified organization. */ + get: operations["list-org-regions"]; + }; +} + +export interface components { + schemas: { + /** @description The address of the user. */ + Address: { + /** + * Format: ISO ALPHA-2 + * @description Two-letter country codes are used to represent countries and states + */ + country?: string; + /** @description The full name of the user */ + name_line?: string; + /** @description Premise (i.e. Apt, Suite, Bldg.) */ + premise?: string; + /** @description Sub Premise (i.e. Suite, Apartment, Floor, Unknown. */ + sub_premise?: string; + /** @description The address of the user */ + thoroughfare?: string; + /** + * Format: ISO ALPHA-2 + * @description The administrative area of the user address + */ + administrative_area?: string; + /** @description The sub-administrative area of the user address */ + sub_administrative_area?: string; + /** @description The locality of the user address */ + locality?: string; + /** @description The dependant_locality area of the user address */ + dependent_locality?: string; + /** @description The postal code area of the user address */ + postal_code?: string; + }; + /** @description The components of the project */ + Components: { + /** @description stub */ + "voucher/vat/baseprice"?: { [key: string]: unknown }; + }; + /** @description Project owner information that can be exposed to collaborators. */ + OwnerInfo: { + /** @description Type of the owner, usually 'user'. */ + type?: string; + /** @description The username of the owner. */ + username?: string; + /** @description The full name of the owner. */ + display_name?: string; + }; + /** @description The ssh key object. */ + SSHKey: { + /** @description The ID of the public key. */ + key_id?: number; + /** @description The internal user ID. */ + uid?: number; + /** @description The fingerprint of the public key. */ + fingerprint?: string; + /** @description The title of the public key. */ + title?: string; + /** @description The actual value of the public key. */ + value?: string; + /** @description The time of the last key modification (ISO 8601) */ + changed?: string; + }; + /** @description The hosting plan. */ + Plan: { + /** @description The machine name of the plan. */ + name?: string; + /** @description The human-readable name of the plan. */ + label?: string; + }; + /** @description The project link object */ + ProjectLink: { + /** @description The ID of the project */ + id?: string; + /** @description The API endpoint URL */ + endpoint?: string; + /** @description The UI URL */ + ui?: string; + /** @description The ID of the subscription */ + subscription_id?: number; + /** + * Format: uuid + * @description The UUID of the project owner + */ + owner?: string; + owner_info?: components["schemas"]["OwnerInfo"]; + }; + /** @description The subscription object. */ + Subscription: { + /** @description The internal ID of the subscription. */ + id?: string; + /** + * @description The status of the subscription. + * @enum {string} + */ + status?: + | "requested" + | "provisioning failure" + | "provisioning" + | "active" + | "suspended" + | "deleted"; + /** + * Format: date-time + * @description The creation date of the subscription. + */ + created_at?: string; + /** + * Format: uuid + * @description The UUID of the owner. + */ + owner?: string; + owner_info?: components["schemas"]["OwnerInfo"]; + /** @description The machine name of the vendor the subscription belongs to. */ + vendor?: string; + /** @description The plan type of the subscription. */ + plan?: string; + /** @description The number of environments which can be provisioned on the project. */ + environments?: number; + /** @description The total storage available to each environment, in MiB. Only multiples of 1024 are accepted as legal values. */ + storage?: number; + /** @description The number of chargeable users who currently have access to the project. Manage this value by adding and removing users through the Platform project API. Staff and billing/administrative contacts can be added to a project for no charge. Contact support for questions about user licenses. */ + user_licenses?: number; + /** @description The unique ID string of the project. */ + project_id?: string; + /** @description The project API endpoint for the project. */ + project_endpoint?: string; + /** @description The name given to the project. Appears as the title in the UI. */ + project_title?: string; + /** @description The machine name of the region where the project is located. Cannot be changed after project creation. */ + project_region?: string; + /** @description The human-readable name of the region where the project is located. */ + project_region_label?: string; + /** @description The URL for the project's user interface. */ + project_ui?: string; + project_options?: components["schemas"]["ProjectOptions"]; + /** @description Whether the subscription is invoiced. */ + invoiced?: boolean; + /** @description Whether the project is marked as HIPAA. */ + hipaa?: boolean; + /** @description Details of the attached services. */ + services?: { [key: string]: unknown }[]; + }; + /** @description The project options object. */ + ProjectOptions: { + /** @description The initial values applied to the project. */ + defaults?: { + /** @description The project settings. */ + settings?: { [key: string]: unknown }; + /** @description The project variables. */ + variables?: { [key: string]: unknown }; + /** @description The project access list. */ + access?: { [key: string]: unknown }; + /** @description The project capabilities. */ + capabilities?: { [key: string]: unknown }; + }; + /** @description The enforced values applied to the project. */ + enforced?: { + /** @description The project settings. */ + settings?: { [key: string]: unknown }; + /** @description The project capabilities. */ + capabilities?: { [key: string]: unknown }; + }; + /** @description The available regions. */ + regions?: string[]; + /** @description The available plans. */ + plans?: string[]; + /** @description The billing settings. */ + billing?: { [key: string]: unknown }; + }; + /** @description Links to _self, and previous or next page, given that they exist. */ + HalLinks: { + /** @description The cardinal link to the self resource. */ + self?: { + /** @description Title of the link */ + title?: string; + /** @description URL of the link */ + href?: string; + }; + /** @description The link to the previous resource page, given that it exists. */ + previous?: { + /** @description Title of the link */ + title?: string; + /** @description URL of the link */ + href?: string; + }; + /** @description The link to the next resource page, given that it exists. */ + next?: { + /** @description Title of the link */ + title?: string; + /** @description URL of the link */ + href?: string; + }; + }; + /** @description The user profile. */ + Profile: { + /** + * Format: uuid + * @description The user's unique ID. + */ + id?: string; + /** @description The user's display name. */ + display_name?: string; + /** + * Format: email + * @description The user's email address. + */ + email?: string; + /** @description The user's username. */ + username?: string; + /** + * @description The user's type (user/organization). + * @enum {string} + */ + type?: "user" | "organization"; + /** + * Format: url + * @description The URL of the user's picture. + */ + picture?: string; + /** @description The company type. */ + company_type?: string; + /** @description The name of the company. */ + company_name?: string; + /** @description A 3-letter ISO 4217 currency code (assigned according to the billing address). */ + currency?: string; + /** @description The vat number of the user. */ + vat_number?: string; + /** @description The role of the user in the company. */ + company_role?: string; + /** @description The user or company website. */ + website_url?: string; + /** @description Whether the new UI features are enabled for this user. */ + new_ui?: boolean; + /** @description The user's chosen color scheme for user interfaces. */ + ui_colorscheme?: string; + /** @description The URL of a catalog file which overrides the default. */ + default_catalog?: string; + /** @description The URL of an account-wide project options file. */ + project_options_url?: string; + /** @description Flag if the user agreed to receive marketing communication. */ + marketing?: boolean; + /** + * Format: date-time + * @description The timestamp representing when the user account was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The timestamp representing when the user account was last modified. + */ + updated_at?: string; + /** + * Format: email + * @description The e-mail address of a contact to whom billing notices will be sent. + */ + billing_contact?: string; + /** + * Format: email + * @description The e-mail address of a contact to whom security notices will be sent. + */ + security_contact?: string; + /** @description The current trial for the profile. */ + current_trial?: { + /** @description The trial active status. */ + active?: boolean; + /** + * Format: date-time + * @description The trial creation date. + */ + created?: string; + /** @description The trial description. */ + description?: string; + /** + * Format: date-time + * @description The trial expiration-date. + */ + expiration?: string; + /** @description The total amount spent by the trial user at this point in time. */ + current?: { + /** @description The total amount formatted. */ + formatted?: string; + /** @description The total amount. */ + amount?: string; + /** @description The currency. */ + currency?: string; + }; + /** @description The total amount available for the trial. */ + spend?: { + /** @description The total amount formatted. */ + formatted?: string; + /** @description The total amount. */ + amount?: string; + /** @description The currency. */ + currency?: string; + }; + }; + }; + /** @description The support ticket object. */ + Ticket: { + /** @description The ID of the ticket. */ + ticket_id?: number; + /** + * Format: date-time + * @description The time when the support ticket was created. + */ + created?: string; + /** + * Format: date-time + * @description The time when the support ticket was updated. + */ + updated?: string; + /** + * @description A type of the ticket. + * @enum {string} + */ + type?: "problem" | "task" | "incident" | "question"; + /** @description A title of the ticket. */ + subject?: string; + /** @description The description body of the support ticket. */ + description?: string; + /** + * @description A priority of the ticket. + * @enum {string} + */ + priority?: "low" | "normal" | "high" | "urgent"; + /** @description Followup ticket ID. The unique ID of the ticket which this ticket is a follow-up to. */ + followup_tid?: string; + /** + * @description The status of the support ticket. + * @enum {string} + */ + status?: + | "closed" + | "deleted" + | "hold" + | "new" + | "open" + | "pending" + | "solved"; + /** @description Email address of the ticket recipient, defaults to support@platform.sh. */ + recipient?: string; + /** + * Format: uuid + * @description UUID of the ticket requester. + */ + requester_id?: string; + /** + * Format: uuid + * @description UUID of the ticket submitter. + */ + submitter_id?: string; + /** + * Format: uuid + * @description UUID of the ticket assignee. + */ + assignee_id?: string; + /** @description A reference id that is usable to find the commerce license. */ + organization_id?: string; + /** @description Whether or not this ticket has incidents. */ + has_incidents?: boolean; + /** + * Format: date-time + * @description A time that the ticket is due at. + */ + due?: string; + /** @description A list of tags assigned to the ticket. */ + tags?: string[]; + /** @description The internal ID of the subscription. */ + subscription_id?: string; + /** @description Maps to zendesk field 'Request group'. */ + ticket_group?: string; + /** @description Maps to zendesk field 'The support plan associated with this ticket. */ + support_plan?: string; + /** + * Format: url + * @description The affected URL associated with the support ticket. + */ + affected_url?: string; + /** @description The queue the support ticket is in. */ + queue?: string; + /** @description The issue type of the support ticket. */ + issue_type?: string; + /** + * Format: date-time + * @description Maps to zendesk field 'Resolution Time'. + */ + resolution_time?: string; + /** + * Format: date-time + * @description Maps to zendesk field 'Response Time (time from request to reply). + */ + response_time?: string; + /** + * Format: url + * @description Maps to zendesk field 'Project URL'. + */ + project_url?: string; + /** @description Maps to zendesk field 'Region'. */ + region?: string; + /** + * @description Maps to zendesk field 'Category'. + * @enum {string} + */ + category?: + | "access" + | "billing_question" + | "complaint" + | "compliance_question" + | "configuration_change" + | "general_question" + | "incident_outage" + | "bug_report" + | "onboarding" + | "report_a_gui_bug" + | "close_my_account"; + /** + * @description Maps to zendesk field 'Environment'. + * @enum {string} + */ + environment?: "env_development" | "env_staging" | "env_production"; + /** + * @description Maps to zendesk field 'Ticket Sharing Status'. + * @enum {string} + */ + ticket_sharing_status?: + | "ts_sent_to_platform" + | "ts_accepted_by_platform" + | "ts_returned_from_platform" + | "ts_solved_by_platform" + | "ts_rejected_by_platform"; + /** + * Format: url + * @description Maps to zendesk field 'Application Ticket URL'. + */ + application_ticket_url?: string; + /** + * Format: url + * @description Maps to zendesk field 'Infrastructure Ticket URL'. + */ + infrastructure_ticket_url?: string; + /** @description A list of JIRA issues related to the support ticket. */ + jira?: { + /** @description The id of the query. */ + id?: number; + /** @description The id of the ticket. */ + ticket_id?: number; + /** @description The issue id number. */ + issue_id?: number; + /** @description The issue key. */ + issue_key?: string; + /** + * Format: float + * @description The created at timestamp. + */ + created_at?: number; + /** + * Format: float + * @description The updated at timestamp. + */ + updated_at?: number; + }[]; + }; + /** @description The user object. */ + CurrentUser: { + /** + * Format: uuid + * @description The UUID of the owner. + */ + id?: string; + /** + * Format: uuid + * @description The UUID of the owner. + */ + uuid?: string; + /** @description The username of the owner. */ + username?: string; + /** @description The full name of the owner. */ + display_name?: string; + /** @description Status of the user. 0 = blocked; 1 = active. */ + status?: number; + /** + * Format: email + * @description The email address of the owner. + */ + mail?: string; + /** @description The list of user's public SSH keys. */ + ssh_keys?: components["schemas"]["SSHKey"][]; + /** @description The indicator whether the user has a public ssh key on file or not. */ + has_key?: boolean; + projects?: { + /** @description The unique ID string of the project. */ + id?: string; + /** @description The name given to the project. Appears as the title in the user interface. */ + name?: string; + /** @description The name given to the project. Appears as the title in the user interface. */ + title?: string; + /** @description The machine name of the region where the project is located. Cannot be changed after project creation. */ + cluster?: string; + /** @description The human-readable name of the region where the project is located. */ + cluster_label?: string; + /** @description The machine name of the region where the project is located. Cannot be changed after project creation. */ + region?: string; + /** @description The human-readable name of the region where the project is located. */ + region_label?: string; + /** @description The URL for the project's user interface. */ + uri?: string; + /** @description The project API endpoint for the project. */ + endpoint?: string; + /** @description The ID of the subscription. */ + license_id?: number; + /** + * Format: uuid + * @description The UUID of the owner. + */ + owner?: string; + owner_info?: components["schemas"]["OwnerInfo"]; + /** @description The plan type of the subscription. */ + plan?: string; + /** @description The ID of the subscription. */ + subscription_id?: number; + /** @description The status of the project. */ + status?: string; + /** @description The machine name of the vendor the subscription belongs to. */ + vendor?: string; + /** @description The machine name of the vendor the subscription belongs to. */ + vendor_label?: string; + /** + * Format: url + * @description The URL of the vendor the subscription belongs to. + */ + vendor_website?: string; + /** @description The link to the resources of the vendor the subscription belongs to. */ + vendor_resources?: string; + /** + * Format: date-time + * @description The creation date of the subscription. + */ + created_at?: string; + }[]; + /** @description The sequential ID of the user. */ + sequence?: number; + roles?: string[]; + /** + * Format: url + * @description The URL of the user image. + */ + picture?: string; + /** @description Number of support tickets by status. */ + tickets?: { [key: string]: unknown }; + /** @description The indicator whether the user is in trial or not. */ + trial?: boolean; + current_trial?: { + /** + * Format: date-time + * @description The ISO timestamp of the trial creation date time. + */ + created?: string; + /** @description The human readable trial description */ + description?: string; + /** @description Total spend amount of the voucher minus existing project costs for the existing billing cycle. */ + spend_remaining?: string; + /** + * Format: date-time + * @description Date the trial expires. + */ + expiration?: string; + }[]; + }; + /** OrganizationInvitation */ + OrganizationInvitation: { + /** + * Format: uuid + * @description The ID of the invitation. + */ + id?: string; + /** + * @description The invitation state. + * @enum {string} + */ + state?: "pending" | "processing" | "accepted" | "cancelled" | "error"; + /** @description The ID of the organization. */ + organization_id?: string; + /** + * Format: email + * @description The email address of the invitee. + */ + email?: string; + /** @description The inviter. */ + owner?: { + /** + * Format: uuid + * @description The ID of the user. + */ + id?: string; + /** @description The user's display name. */ + display_name?: string; + }; + /** + * Format: date-time + * @description The date and time when the invitation was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the invitation was last updated. + */ + updated_at?: string; + /** + * Format: date-time + * @description The date and time when the invitation was finished. + */ + finished_at?: string | null; + /** @description The permissions the invitee should be given on the organization. */ + permissions?: ("billing" | "plans" | "members" | "project:create")[]; + }; + ProjectInvitation: { + /** + * Format: uuid + * @description The ID of the invitation. + */ + id?: string; + /** + * @description The invitation state. + * @enum {string} + */ + state?: "pending" | "processing" | "accepted" | "cancelled" | "error"; + /** @description The ID of the project. */ + project_id?: string; + /** + * @description The project role. + * @enum {string} + */ + role?: "admin" | "viewer"; + /** + * Format: email + * @description The email address of the invitee. + */ + email?: string; + /** @description The inviter. */ + owner?: { + /** + * Format: uuid + * @description The ID of the user. + */ + id?: string; + /** @description The user's display name. */ + display_name?: string; + }; + /** + * Format: date-time + * @description The date and time when the invitation was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the invitation was last updated. + */ + updated_at?: string; + /** + * Format: date-time + * @description The date and time when the invitation was finished. + */ + finished_at?: string | null; + environments?: { + /** @description The ID of the environment. */ + id?: string; + /** + * @description The environment role. + * @enum {string} + */ + role?: "admin" | "viewer" | "contributor"; + /** @description The environment title. */ + title?: string; + }[]; + }; + User: { + /** + * Format: uuid + * @description The ID of the user. + */ + id: string; + /** @description Whether the user has been deactivated. */ + deactivated: boolean; + /** @description The namespace in which the user's username is unique. */ + namespace: string; + /** @description The user's username. */ + username: string; + /** + * Format: email + * @description The user's email address. + */ + email: string; + /** @description Whether the user's email address has been verified. */ + email_verified: boolean; + /** @description The user's first name. */ + first_name: string; + /** @description The user's last name. */ + last_name: string; + /** + * Format: uri + * @description The user's picture. + */ + picture: string; + /** @description The user's company. */ + company: string; + /** + * Format: uri + * @description The user's website. + */ + website: string; + /** @description The user's country (2-letter country code). */ + country: string; + /** + * Format: date-time + * @description The date and time when the user was created. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time when the user was last updated. + */ + updated_at: string; + }; + Error: { + status?: string; + message?: string; + code?: number; + detail?: { [key: string]: unknown }; + title?: string; + }; + APIToken: { + /** + * Format: uuid + * @description The ID of the token. + */ + id?: string; + /** @description The token name. */ + name?: string; + /** @description The token in plain text (available only when created). */ + token?: string; + /** + * Format: date-time + * @description The date and time when the token was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the token was last updated. + */ + updated_at?: string; + }; + Connection: { + /** @description The name of the federation provider. */ + provider?: string; + /** @description The identity on the federation provider. */ + subject?: string; + /** + * Format: date-time + * @description The date and time when the connection was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the connection was last updated. + */ + updated_at?: string; + }; + /** @description The referenced user, or null if it no longer exists. */ + UserReference: { + /** + * Format: uuid + * @description The ID of the user. + */ + id?: string; + /** @description The user's username. */ + username?: string; + /** + * Format: email + * @description The user's email address. + */ + email?: string; + /** @description The user's first name. */ + first_name?: string; + /** @description The user's last name. */ + last_name?: string; + /** + * Format: uri + * @description The user's picture. + */ + picture?: string; + } | null; + AcceptedResponse: { + /** The status text of the response */ + status: string; + /** The status code of the response */ + code: number; + }; + Activity: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Type */ + type: string; + /** Parameters */ + parameters: { [key: string]: unknown }; + /** Project */ + project: string; + /** Integration */ + integration?: string; + /** Environments */ + environments?: string[]; + /** + * State + * @enum {string} + */ + state: "cancelled" | "complete" | "in_progress" | "pending" | "scheduled"; + /** + * Result + * @enum {string|null} + */ + result: ("failure" | "success") | null; + /** + * Start date + * Format: date-time + */ + started_at: string | null; + /** + * Completion date + * Format: date-time + */ + completed_at: string | null; + /** Completion percentage */ + completion_percent: number; + /** + * Cancellation date + * Format: date-time + */ + cancelled_at: string | null; + /** Timings related to different phases of the activity */ + timings: { [key: string]: number }; + /** + * Log + * @deprecated + */ + log: string; + /** Payload */ + payload: { [key: string]: unknown }; + /** The description of the activity, formatted with HTML */ + description: string | null; + /** The description of the activity, formatted as plain text */ + text: string | null; + /** + * The date at which the activity will expire. + * Format: date-time + */ + expires_at: string | null; + }; + ActivityCollection: components["schemas"]["Activity"][]; + Backup: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** The backup name/id (used for purging) */ + id: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** + * The status of the backup + * @enum {string} + */ + status: "CREATED" | "DELETING"; + /** + * Expiration date of the backup + * Format: date-time + */ + expires_at: string | null; + /** The index of this automated backup */ + index: number | null; + /** The ID of the code commit attached to the backup */ + commit_id: string; + /** The environment the backup belongs to */ + environment: string; + /** Whether this backup was taken in a safe way */ + safe: boolean; + /** Whether the backup is restorable */ + restorable: boolean; + }; + BackupCollection: components["schemas"]["Backup"][]; + BitbucketIntegration: { + /** Integration type */ + type: string; + /** The OAuth2 consumer information (optional). */ + app_credentials?: { + /** The OAuth consumer key. */ + key: string; + /** The OAuth consumer secret. */ + secret: string; + } | null; + /** The addon credential information (optional). */ + addon_credentials?: { + /** The addon key (public identifier). */ + addon_key: string; + /** The client key (public identifier). */ + client_key: string; + /** The secret of the client. */ + shared_secret: string; + } | null; + /** The Bitbucket repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests: boolean; + /** Whether or not pull request environment data should be re-synced on every build. */ + resync_pull_requests: boolean; + }; + BitbucketIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The OAuth2 consumer information (optional). */ + app_credentials?: { + /** The OAuth consumer key. */ + key: string; + /** The OAuth consumer secret. */ + secret: string; + } | null; + /** The addon credential information (optional). */ + addon_credentials?: { + /** The addon key (public identifier). */ + addon_key: string; + /** The client key (public identifier). */ + client_key: string; + /** The secret of the client. */ + shared_secret: string; + } | null; + /** The Bitbucket repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not pull request environment data should be re-synced on every build. */ + resync_pull_requests?: boolean; + }; + BitbucketIntegrationPatch: { + /** Integration type */ + type: string; + /** The OAuth2 consumer information (optional). */ + app_credentials?: { + /** The OAuth consumer key. */ + key: string; + /** The OAuth consumer secret. */ + secret: string; + } | null; + /** The addon credential information (optional). */ + addon_credentials?: { + /** The addon key (public identifier). */ + addon_key: string; + /** The client key (public identifier). */ + client_key: string; + /** The secret of the client. */ + shared_secret: string; + } | null; + /** The Bitbucket repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not pull request environment data should be re-synced on every build. */ + resync_pull_requests?: boolean; + }; + BitbucketServerIntegration: { + /** Integration type */ + type: string; + /** The base URL of the Bitbucket Server installation. */ + url: string; + /** The Bitbucket Server user. */ + username: string; + /** The Bitbucket Server project */ + project: string; + /** The Bitbucket Server repository */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests: boolean; + /** Whether or not to clone parent data when building merge requests. */ + pull_requests_clone_parent_data: boolean; + }; + BitbucketServerIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The base URL of the Bitbucket Server installation. */ + url: string; + /** The Bitbucket Server user. */ + username: string; + /** The Bitbucket Server personal access token. */ + token: string; + /** The Bitbucket Server project */ + project: string; + /** The Bitbucket Server repository */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not to clone parent data when building merge requests. */ + pull_requests_clone_parent_data?: boolean; + }; + BitbucketServerIntegrationPatch: { + /** Integration type */ + type: string; + /** The base URL of the Bitbucket Server installation. */ + url: string; + /** The Bitbucket Server user. */ + username: string; + /** The Bitbucket Server personal access token. */ + token: string; + /** The Bitbucket Server project */ + project: string; + /** The Bitbucket Server repository */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not to clone parent data when building merge requests. */ + pull_requests_clone_parent_data?: boolean; + }; + BlackfireIntegrationStorage: { + /** Integration type */ + type: string; + /** Integration role */ + role: string; + /** Basic authentication username for blackfire API */ + username: string; + /** Basic authentication password for blackfire API */ + password: string; + /** The blackfire base url */ + base_url: string; + /** Blackfire environments credentials */ + environments_credentials: { + [key: string]: { + /** Environment server UUID */ + server_uuid: string; + /** Environment server token */ + server_token: string; + }; + }; + /** Runtimes supported by the blackfire integration */ + supported_runtimes: string[]; + }; + BlackfireIntegrationStorageCreateInput: { + /** Integration type */ + type: string; + /** Integration role */ + role?: string; + /** Basic authentication username for blackfire API */ + username: string; + /** Basic authentication password for blackfire API */ + password: string; + /** The blackfire base url */ + base_url?: string; + /** Blackfire environments credentials */ + environments_credentials?: { + [key: string]: { + /** Environment server UUID */ + server_uuid: string; + /** Environment server token */ + server_token: string; + }; + }; + /** Runtimes supported by the blackfire integration */ + supported_runtimes?: string[]; + }; + BlackfireIntegrationStoragePatch: { + /** Integration type */ + type: string; + /** Integration role */ + role?: string; + /** Basic authentication username for blackfire API */ + username: string; + /** Basic authentication password for blackfire API */ + password: string; + /** The blackfire base url */ + base_url?: string; + /** Blackfire environments credentials */ + environments_credentials?: { + [key: string]: { + /** Environment server UUID */ + server_uuid: string; + /** Environment server token */ + server_token: string; + }; + }; + /** Runtimes supported by the blackfire integration */ + supported_runtimes?: string[]; + }; + Blob: { + /** The identifier of the tag */ + sha: string; + /** The size of the blob */ + size: number; + /** The encoding of the contents (always base64) */ + encoding: string; + /** The contents */ + content: string; + }; + Certificate: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** The PEM-encoded certificate */ + certificate: string; + /** Certificate chain */ + chain: string[]; + /** Whether this certificate is automatically provisioned */ + is_provisioned: boolean; + /** Whether this certificate should be skipped during provisioning */ + is_invalid: boolean; + /** Whether this certificate is root type */ + is_root: boolean; + /** The domains covered by this certificate */ + domains: string[]; + /** The type of authentication the certificate supports */ + auth_type: string[]; + /** The issuer of the certificate */ + issuer: { + /** The OID of the attribute */ + oid: string; + /** The alias of the attribute, if known */ + alias: string | null; + /** The value */ + value: string; + }[]; + /** + * Expiration date + * Format: date-time + */ + expires_at: string; + }; + CertificateCollection: components["schemas"]["Certificate"][]; + CertificateCreateInput: { + /** The PEM-encoded certificate */ + certificate: string; + /** The PEM-encoded private key */ + key: string; + /** Certificate chain */ + chain?: string[]; + /** Whether this certificate should be skipped during provisioning */ + is_invalid?: boolean; + }; + CertificatePatch: { + /** Certificate chain */ + chain?: string[]; + /** Whether this certificate should be skipped during provisioning */ + is_invalid?: boolean; + }; + Commit: { + /** The identifier of the commit */ + sha: string; + /** The information about the author */ + author: { + /** + * The time of the author or committer + * Format: date-time + */ + date: string; + /** The name of the author or committer */ + name: string; + /** The email of the author or committer */ + email: string; + }; + /** The information about the author */ + committer: { + /** + * The time of the author or committer + * Format: date-time + */ + date: string; + /** The name of the author or committer */ + name: string; + /** The email of the author or committer */ + email: string; + }; + /** The commit message */ + message: string; + /** The identifier of the tree */ + tree: string; + /** The identifiers of the parents of the commit */ + parents: string[]; + }; + ContainerProfile: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Container profile name */ + name: string; + /** Sizes */ + sizes: { + [key: string]: { + /** + * Cpu value + * Format: float + */ + cpu: number; + /** Memory in MB */ + memory: number; + }; + }; + }; + DedicatedDeploymentTarget: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** The host to deploy to. */ + deploy_host: string | null; + /** The port to deploy to. */ + deploy_port: number | null; + /** The hosts of the deployment target. */ + hosts: + | { + /** The identifier of the host. */ + id: string | null; + /** + * The type of the deployment to this host. + * @enum {string} + */ + type: "core" | "satellite"; + }[] + | null; + /** Whether to take application mounts from the pushed data or the deployment target. */ + auto_mounts: boolean; + /** Directories that should not be mounted */ + excluded_mounts: string[]; + /** Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount). */ + enforced_mounts: { [key: string]: unknown }; + /** Whether to take application crons from the pushed data or the deployment target. */ + auto_crons: boolean; + /** Whether to take application crons from the pushed data or the deployment target. */ + auto_nginx: boolean; + /** Whether to perform deployments or not */ + maintenance_mode: boolean; + /** which phase of guardrails are we in */ + guardrails_phase: number; + }; + DedicatedDeploymentTargetCreateInput: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount). */ + enforced_mounts?: { [key: string]: unknown }; + }; + DedicatedDeploymentTargetPatch: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount). */ + enforced_mounts?: { [key: string]: unknown }; + }; + Deployment: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** The name of the cluster. */ + cluster_name: string; + /** Project Info */ + project_info: { + /** The project machine name */ + name: string; + /** Settings */ + settings: { [key: string]: unknown }; + }; + /** Environment Info */ + environment_info: { + /** The machine name of the environment */ + name: string; + /** Is this environment the main environment */ + is_main: boolean; + /** Is this environment a production environment */ + is_production: boolean; + /** The reference in Git for this environment */ + reference: string; + /** The machine name of the environment */ + machine_name: string; + /** The type of environment (Production, Staging or Development) */ + environment_type: string; + }; + /** The deployment target. */ + deployment_target: string; + /** VPN configuration */ + vpn: { + /** + * The IKE version to use (1 or 2) + * @enum {integer} + */ + version: 1 | 2; + /** + * Whether to use IKEv1 Aggressive or Main Mode + * @enum {string} + */ + aggressive: "no" | "yes"; + /** + * Defines which mode is used to assign a virtual IP (must be the same on both sides) + * @enum {string} + */ + modeconfig: "pull" | "push"; + /** The authentication scheme */ + authentication: string; + /** Remote gateway IP */ + gateway_ip: string; + /** The identity of the ipsec participant */ + identity: string | null; + /** The second identity of the ipsec participant */ + second_identity: string | null; + /** The identity of the remote ipsec participant */ + remote_identity: string | null; + /** Remote subnets (CIDR notation) */ + remote_subnets: string[]; + /** The IKE algorithms to negotiate for this VPN connection. */ + ike: string; + /** The ESP algorithms to negotiate for this VPN connection. */ + esp: string; + /** The lifetime of the IKE exchange. */ + ikelifetime: string; + /** The lifetime of the ESP exchange. */ + lifetime: string; + /** The margin time for re-keying. */ + margintime: string; + } | null; + /** HTTP access permissions */ + http_access: { + /** Whether http_access control is enabled */ + is_enabled: boolean; + /** Address grants */ + addresses: { + /** + * Permission + * @enum {string} + */ + permission: "allow" | "deny"; + /** IP address or CIDR */ + address: string; + }[]; + /** Basic auth grants */ + basic_auth: { [key: string]: string }; + }; + /** Whether to configure SMTP for this environment. */ + enable_smtp: boolean; + /** Whether to restrict robots for this environment. */ + restrict_robots: boolean; + /** The variables applying to this environment */ + variables: { + /** Name of the variable */ + name: string; + /** Value of the variable */ + value?: string; + /** The variable is sensitive */ + is_sensitive: boolean; + }[]; + /** Access control definition for this enviroment */ + access: { + /** Entity ID */ + entity_id: string; + /** + * Role + * @enum {string} + */ + role: "admin" | "contributor" | "viewer"; + }[]; + /** Subscription */ + subscription: { + /** URI of the subscription */ + license_uri: string; + /** + * Plan level + * @enum {string} + */ + plan?: + | "2xlarge" + | "4xlarge" + | "8xlarge" + | "development" + | "large" + | "medium" + | "standard" + | "xlarge"; + /** Number of environments */ + environments?: number; + /** Size of storage (in MB) */ + storage: number; + /** Number of users */ + included_users: number; + /** URI for managing the subscription */ + subscription_management_uri: string; + /** True if subscription attributes, like number of users, are frozen */ + restricted: boolean; + /** Whether or not the subscription is suspended */ + suspended: boolean; + /** Current number of users */ + user_licenses: number; + /** Resources limits */ + resources?: { + /** Resources for production environments */ + production: { + /** + * Maximum number of allocated CPU units. + * Format: float + */ + max_cpu: number; + /** Maximum amount of allocated RAM. */ + max_memory: number; + /** Maximum number of environments */ + max_environments: number; + }; + /** Resources for development environments */ + development: { + /** + * Maximum number of allocated CPU units. + * Format: float + */ + max_cpu: number; + /** Maximum amount of allocated RAM. */ + max_memory: number; + /** Maximum number of environments */ + max_environments: number; + }; + }; + /** URL for resources validation */ + resource_validation_url?: string; + /** Restricted and denied image types */ + image_types?: { + /** Image types to be allowed use. */ + only?: string[]; + /** Image types to be denied use. */ + exclude?: string[]; + }; + }; + /** Services */ + services: { + [key: string]: { + /** The service type. */ + type: string; + /** + * The service size. + * @enum {string} + */ + size: "2XL" | "4XL" | "AUTO" | "L" | "M" | "S" | "XL"; + /** The size of the disk. */ + disk: number | null; + /** The configuration of the service. */ + access: { [key: string]: unknown }; + /** The configuration of the service. */ + configuration: { [key: string]: unknown }; + /** The relationships of the service to other services. */ + relationships: { [key: string]: string }; + /** Firewall */ + firewall: { + /** Outbound firewall restrictions */ + outbound: { + /** + * The IP protocol to apply the restriction on. + * @enum {string} + */ + protocol: "tcp"; + /** The IP range in CIDR notation to apply the restriction on. */ + ips: string[]; + /** Domains of the restriction. */ + domains: string[]; + /** The port to apply the restriction on. */ + ports: number[]; + }[]; + } | null; + /** Resources */ + resources: { + /** The base memory for the container */ + base_memory: number | null; + /** The amount of memory to allocate per units of CPU */ + memory_ratio: number | null; + /** Selected size from container profile */ + profile_size: string | null; + } | null; + /** Initial size for the service from container profile list */ + initial_size: string | null; + /** Selected container profile for the service */ + container_profile: string | null; + /** Endpoints */ + endpoints: { [key: string]: unknown } | null; + }; + }; + /** Routes */ + routes: { + [key: string]: + | components["schemas"]["ProxyRoute"] + | components["schemas"]["RedirectRoute"] + | components["schemas"]["UpstreamRoute"]; + }; + /** Web applications */ + webapps: { + [key: string]: { + /** Resources */ + resources: { + /** The base memory for the container */ + base_memory: number | null; + /** The amount of memory to allocate per units of CPU */ + memory_ratio: number | null; + /** Selected size from container profile */ + profile_size: string | null; + } | null; + /** + * The container size for this application in production. Leave blank to allow it to be set dynamically. + * @enum {string} + */ + size: "2XL" | "4XL" | "AUTO" | "L" | "M" | "S" | "XL" | "XS"; + /** The writeable disk size to reserve on this application container. */ + disk: number | null; + /** Access information, a mapping between access type and roles. */ + access: { [key: string]: "admin" | "contributor" | "viewer" }; + /** The relationships of the application to defined services. */ + relationships: { [key: string]: string }; + /** Filesystem mounts of this application. If not specified the application will have no writeable disk space. */ + mounts: { + [key: string]: { + /** + * The type of mount that will provide the data. + * @enum {string} + */ + source: "local" | "service" | "tmp"; + /** The path to be mounted, relative to the root directory of the volume that's being mounted from. */ + source_path: string; + /** The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`. */ + service?: string | null; + }; + }; + /** The timezone of the application. This primarily affects the timezone in which cron tasks will run. It will not affect the application itself. Defaults to UTC if not specified. */ + timezone: string | null; + /** Variables provide environment-sensitive information to control how your application behaves. To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment. */ + variables: { [key: string]: { [key: string]: unknown } }; + /** Firewall */ + firewall: { + /** Outbound firewall restrictions */ + outbound: { + /** + * The IP protocol to apply the restriction on. + * @enum {string} + */ + protocol: "tcp"; + /** The IP range in CIDR notation to apply the restriction on. */ + ips: string[]; + /** Domains of the restriction. */ + domains: string[]; + /** The port to apply the restriction on. */ + ports: number[]; + }[]; + } | null; + /** Initial size for the application from container profile list */ + initial_size: string | null; + /** Selected container profile for the application */ + container_profile: string | null; + /** The name of the application. Must be unique within a project. */ + name: string; + /** The base runtime (language) and version to use for this application. */ + type: string; + /** Runtime-specific configuration. */ + runtime: { [key: string]: unknown }; + /** Configuration for pre-flight checks. */ + preflight: { + /** Whether the preflight security blocks are enabled. */ + enabled: boolean; + /** Specific rules to ignore during preflight security checks. See the documentation for options. */ + ignored_rules: string[]; + }; + /** The identifier of the source tree of the application */ + tree_id: string; + /** The identifier of the built artifact of the application */ + slug_id: string; + /** The path of the application in the container */ + app_dir: string; + /** Configuration for accessing this application via HTTP. */ + web: { + /** The specification of the web locations served by this application. */ + locations: { + [key: string]: { + /** The folder from which to serve static assets for this location relative to the application root. */ + root: string | null; + /** Amount of time to cache static assets. */ + expires: string; + /** Whether to forward disallowed and missing resources from this location to the application. On PHP, set to the PHP front controller script, as a URL fragment. Otherwise set to `true`/`false`. */ + passthru: string; + /** Whether to execute scripts in this location (for script based runtimes). */ + scripts: boolean; + /** Files to look for to serve directories. */ + index?: string[] | null; + /** Whether to allow access to this location by default. */ + allow: boolean; + /** A set of header fields set to the HTTP response. Applies only to static files, not responses from the application. */ + headers: { [key: string]: string }; + /** Specific overrides. */ + rules: { + [key: string]: { + /** Amount of time to cache static assets. */ + expires?: string | null; + /** Whether to forward disallowed and missing resources from this location to the application. On PHP, set to the PHP front controller script, as a URL fragment. Otherwise set to `true`/`false`. */ + passthru?: string; + /** Whether to execute scripts in this location (for script based runtimes). */ + scripts?: boolean; + /** Whether to allow access to this location by default. */ + allow?: boolean; + /** A set of header fields set to the HTTP response. Replaces headers set on the location block. */ + headers?: { [key: string]: string }; + }; + }; + /** Configuration for supporting request buffering. */ + request_buffering?: { + /** Enable request buffering. */ + enabled: boolean; + /** The maximum size request that can be buffered. Supports K, M, and G suffixes. */ + max_request_size: string | null; + }; + }; + }; + /** Commands to manage the application's lifecycle. */ + commands?: { + /** The command used to start the application. It will be restarted if it terminates. Do not use on PHP unless using a custom persistent process like React PHP. */ + start: string; + }; + /** Configuration on how the web server communicates with the application. */ + upstream?: { + /** + * If `tcp`, check the PORT environment variable on application startup. If `unix`, check SOCKET. + * @enum {string} + */ + socket_family: "tcp" | "unix"; + /** + * Protocol + * @enum {string|null} + */ + protocol: ("fastcgi" | "http") | null; + }; + /** The document root of this application, relative to its root. */ + document_root?: string | null; + /** The URL to use as a passthru if a file doesn't match the whitelist. */ + passthru?: string | null; + /** Files to look for to serve directories. */ + index_files?: string[] | null; + /** Whitelisted entries. */ + whitelist?: string[] | null; + /** Blacklisted entries. */ + blacklist?: string[] | null; + /** Amount of time to cache static assets. */ + expires?: string | null; + /** Whether to move the whole root of the app to the document root. */ + move_to_root: boolean; + }; + /** Hooks executed at various point in the lifecycle of the application. */ + hooks: { + /** Hook executed after the build process. */ + build: string | null; + /** Hook executed after the deployment of new code. */ + deploy: string | null; + /** Hook executed after an environment is fully deployed. */ + post_deploy: string | null; + }; + /** Scheduled cron tasks executed by this application. */ + crons: { + [key: string]: { + /** The cron schedule specification. */ + spec: string; + /** The start and stop commands definition. */ + commands: { + /** The command used to start the cron job. */ + start: string; + /** The command used to stop the cron job. */ + stop?: string | null; + }; + /** The timeout in seconds after which the cron job will be forcefully killed. */ + shutdown_timeout?: number | null; + /** The maximum timeout in seconds after which the cron job will be forcefully killed. */ + timeout: number; + /** The command to execute. */ + cmd?: string; + }; + }; + }; + }; + /** Workers */ + workers: { + [key: string]: { + /** Resources */ + resources: { + /** The base memory for the container */ + base_memory: number | null; + /** The amount of memory to allocate per units of CPU */ + memory_ratio: number | null; + /** Selected size from container profile */ + profile_size: string | null; + } | null; + /** + * The container size for this application in production. Leave blank to allow it to be set dynamically. + * @enum {string} + */ + size: "2XL" | "4XL" | "AUTO" | "L" | "M" | "S" | "XL" | "XS"; + /** The writeable disk size to reserve on this application container. */ + disk: number | null; + /** Access information, a mapping between access type and roles. */ + access: { [key: string]: "admin" | "contributor" | "viewer" }; + /** The relationships of the application to defined services. */ + relationships: { [key: string]: string }; + /** Filesystem mounts of this application. If not specified the application will have no writeable disk space. */ + mounts: { + [key: string]: { + /** + * The type of mount that will provide the data. + * @enum {string} + */ + source: "local" | "service" | "tmp"; + /** The path to be mounted, relative to the root directory of the volume that's being mounted from. */ + source_path: string; + /** The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`. */ + service?: string | null; + }; + }; + /** The timezone of the application. This primarily affects the timezone in which cron tasks will run. It will not affect the application itself. Defaults to UTC if not specified. */ + timezone: string | null; + /** Variables provide environment-sensitive information to control how your application behaves. To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment. */ + variables: { [key: string]: { [key: string]: unknown } }; + /** Firewall */ + firewall: { + /** Outbound firewall restrictions */ + outbound: { + /** + * The IP protocol to apply the restriction on. + * @enum {string} + */ + protocol: "tcp"; + /** The IP range in CIDR notation to apply the restriction on. */ + ips: string[]; + /** Domains of the restriction. */ + domains: string[]; + /** The port to apply the restriction on. */ + ports: number[]; + }[]; + } | null; + /** Initial size for the application from container profile list */ + initial_size: string | null; + /** Selected container profile for the application */ + container_profile: string | null; + /** The name of the application. Must be unique within a project. */ + name: string; + /** The base runtime (language) and version to use for this application. */ + type: string; + /** Runtime-specific configuration. */ + runtime: { [key: string]: unknown }; + /** Configuration for pre-flight checks. */ + preflight: { + /** Whether the preflight security blocks are enabled. */ + enabled: boolean; + /** Specific rules to ignore during preflight security checks. See the documentation for options. */ + ignored_rules: string[]; + }; + /** The identifier of the source tree of the application */ + tree_id: string; + /** The identifier of the built artifact of the application */ + slug_id: string; + /** The path of the application in the container */ + app_dir: string; + /** Configuration of a worker container instance. */ + worker: { + /** The commands to manage the worker. */ + commands: { + /** The command used to start the application. It will be restarted if it terminates. Do not use on PHP unless using a custom persistent process like React PHP. */ + start: string; + }; + }; + }; + }; + /** Container profiles */ + container_profiles: { + [key: string]: { + [key: string]: { + /** + * Cpu value + * Format: float + */ + cpu: number; + /** Memory in MB */ + memory: number; + }; + }; + }; + }; + DeploymentCollection: components["schemas"]["Deployment"][]; + DeploymentTarget: + | components["schemas"]["DedicatedDeploymentTarget"] + | components["schemas"]["EnterpriseDeploymentTarget"] + | components["schemas"]["FoundationDeploymentTarget"]; + DeploymentTargetCollection: components["schemas"]["DeploymentTarget"][]; + DeploymentTargetCreateInput: + | components["schemas"]["DedicatedDeploymentTargetCreateInput"] + | components["schemas"]["EnterpriseDeploymentTargetCreateInput"] + | components["schemas"]["FoundationDeploymentTargetCreateInput"]; + DeploymentTargetPatch: + | components["schemas"]["DedicatedDeploymentTargetPatch"] + | components["schemas"]["EnterpriseDeploymentTargetPatch"] + | components["schemas"]["FoundationDeploymentTargetPatch"]; + Domain: + | components["schemas"]["ProdDomainStorage"] + | components["schemas"]["ReplacementDomainStorage"]; + DomainCollection: components["schemas"]["Domain"][]; + DomainCreateInput: + | components["schemas"]["ProdDomainStorageCreateInput"] + | components["schemas"]["ReplacementDomainStorageCreateInput"]; + DomainPatch: + | components["schemas"]["ProdDomainStoragePatch"] + | components["schemas"]["ReplacementDomainStoragePatch"]; + EmailIntegration: { + /** Integration type */ + type: string; + /** The email address to use */ + from_address: string | null; + /** Recipients of the email */ + recipients: string[]; + }; + EmailIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The email address to use */ + from_address?: string | null; + /** Recipients of the email */ + recipients: string[]; + }; + EmailIntegrationPatch: { + /** Integration type */ + type: string; + /** The email address to use */ + from_address?: string | null; + /** Recipients of the email */ + recipients: string[]; + }; + EnterpriseDeploymentTarget: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** The host to deploy to. */ + deploy_host: string | null; + /** Mapping of Git clusters to Enterprise applications */ + enterprise_environments_mapping: { [key: string]: unknown }; + /** Site URLs */ + site_urls: { [key: string]: unknown }; + /** List of SSH Hosts. */ + ssh_hosts: string[]; + }; + EnterpriseDeploymentTargetCreateInput: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** Mapping of Git clusters to Enterprise applications */ + enterprise_environments_mapping?: { [key: string]: unknown }; + /** Site URLs */ + site_urls?: { [key: string]: unknown }; + /** List of SSH Hosts. */ + ssh_hosts?: string[]; + }; + EnterpriseDeploymentTargetPatch: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** Mapping of Git clusters to Enterprise applications */ + enterprise_environments_mapping?: { [key: string]: unknown }; + /** Site URLs */ + site_urls?: { [key: string]: unknown }; + /** List of SSH Hosts. */ + ssh_hosts?: string[]; + }; + Environment: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Name */ + name: string; + /** Machine name */ + machine_name: string; + /** Title */ + title: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** + * The type of environment (`production`, `staging` or `development`). If not provided, a default will be calculated. + * @enum {string} + */ + type: "development" | "production" | "staging"; + /** Parent environment */ + parent: string | null; + /** Default domain */ + default_domain: string | null; + /** Clone data when creating that environment */ + clone_parent_on_create: boolean; + /** Deployment target of the environment */ + deployment_target: string | null; + /** Is this environment a pull request / merge request */ + is_pr: boolean; + /** + * Status + * @enum {string} + */ + status: "active" | "deleting" | "dirty" | "inactive"; + /** Http access permissions */ + http_access: { + /** Whether http_access control is enabled */ + is_enabled: boolean; + /** Address grants */ + addresses: { + /** + * Permission + * @enum {string} + */ + permission: "allow" | "deny"; + /** IP address or CIDR */ + address: string; + }[]; + /** Basic auth grants */ + basic_auth: { [key: string]: string }; + }; + /** Whether to configure SMTP for this environment. */ + enable_smtp: boolean; + /** Whether to restrict robots for this environment. */ + restrict_robots: boolean; + /** The hostname to use as the CNAME. */ + edge_hostname: string; + /** The environment deployment state */ + deployment_state: { + /** Whether the last deployment was successful */ + last_deployment_successful: boolean; + /** + * Datetime of the last deployment + * Format: date-time + */ + last_deployment_at: string | null; + /** The crons deployment state */ + crons: { + /** Enabled or disabled */ + enabled: boolean; + /** + * The status of the crons + * @enum {string} + */ + status: "running" | "sleeping"; + }; + } | null; + /** Resources overrides */ + resources_overrides: { + [key: string]: { + /** Per-service resources overrides. */ + services: { + [key: string]: { + /** + * CPU + * Format: float + */ + cpu: number | null; + /** Memory */ + memory: number | null; + /** Disk */ + disk: number | null; + }; + }; + /** + * Date when the override will apply. When null, don't do an auto redeployment but still be effective to redeploys initiated otherwise. + * Format: date-time + */ + starts_at: string | null; + /** + * Date when the override will be reverted. When null, the overrides will never go out of effect. + * Format: date-time + */ + ends_at: string | null; + /** Whether the starting redeploy activity has been fired for this override. */ + redeployed_start: boolean; + /** Whether the ending redeploy activity has been fired for this override. */ + redeployed_end: boolean; + }; + }; + /** + * Last activity date + * Format: date-time + */ + last_active_at: string | null; + /** + * Last backup date + * Format: date-time + */ + last_backup_at: string | null; + /** Project */ + project: string; + /** Is this environment the main environment */ + is_main: boolean; + /** Is there any pending activity on this environment */ + is_dirty: boolean; + /** Does this environment have code */ + has_code: boolean; + /** The SHA of the head commit for this environment */ + head_commit: string | null; + /** The commit distance info between parent and child environments */ + merge_info: { + /** The amount of commits that are in the environment but not in the parent */ + commits_ahead: number | null; + /** The amount of commits that are in the parent but not in the environment */ + commits_behind: number | null; + /** The reference in Git for the parent environment */ + parent_ref: string | null; + }; + /** Whether this environment had a successful deployment. */ + has_deployment: boolean; + }; + EnvironmentBackupInput: { + /** Take a safe backup? */ + safe: boolean; + }; + EnvironmentBranchInput: { + /** Title */ + title: string; + /** Name */ + name: string; + /** Clone data from the parent environment */ + clone_parent: boolean; + /** + * The type of environment (`staging` or `development`) + * @enum {string} + */ + type: "development" | "staging"; + }; + EnvironmentCollection: components["schemas"]["Environment"][]; + EnvironmentCreateInput: { + /** Name */ + name: string; + /** Title */ + title: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * The type of environment (`production`, `staging` or `development`). If not provided, a default will be calculated. + * @enum {string} + */ + type: "development" | "production" | "staging"; + /** Parent environment */ + parent?: string | null; + /** Clone data when creating that environment */ + clone_parent_on_create?: boolean; + /** Http access permissions */ + http_access: { + /** Whether http_access control is enabled */ + is_enabled?: boolean; + /** Address grants */ + addresses?: { + /** + * Permission + * @enum {string} + */ + permission: "allow" | "deny"; + /** IP address or CIDR */ + address: string; + }[]; + /** Basic auth grants */ + basic_auth?: { [key: string]: string }; + }; + /** Whether to configure SMTP for this environment. */ + enable_smtp: boolean; + /** Whether to restrict robots for this environment. */ + restrict_robots?: boolean; + }; + EnvironmentInitializeInput: { + /** Name of the profile to show in the UI */ + profile: string; + /** Repository to clone from */ + repository: string; + /** Repository to clone the configuration files from */ + config: string | null; + /** A list of files to add to the repository during initialization */ + files: { + /** The path to the file. */ + path: string; + /** The octal value of the file protection mode. */ + mode: number; + /** The contents of the file (base64 encoded). */ + contents: string; + }[]; + }; + EnvironmentPatch: { + /** Name */ + name?: string; + /** Title */ + title?: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * The type of environment (`production`, `staging` or `development`). If not provided, a default will be calculated. + * @enum {string} + */ + type?: "development" | "production" | "staging"; + /** Parent environment */ + parent?: string | null; + /** Clone data when creating that environment */ + clone_parent_on_create?: boolean; + /** Http access permissions */ + http_access?: { + /** Whether http_access control is enabled */ + is_enabled?: boolean; + /** Address grants */ + addresses?: { + /** + * Permission + * @enum {string} + */ + permission: "allow" | "deny"; + /** IP address or CIDR */ + address: string; + }[]; + /** Basic auth grants */ + basic_auth?: { [key: string]: string }; + }; + /** Whether to configure SMTP for this environment. */ + enable_smtp?: boolean; + /** Whether to restrict robots for this environment. */ + restrict_robots?: boolean; + }; + EnvironmentRestoreInput: { + /** Environment name */ + environment_name: string; + /** Branch from */ + branch_from: string; + /** Whether we should restore the code or only the data */ + restore_code: boolean; + }; + EnvironmentSourceOperation: { + /** The name of the application */ + app: string; + /** The name of the source operation */ + operation: string; + /** The command that will be triggered */ + command: string; + }; + EnvironmentSourceOperationCollection: components["schemas"]["EnvironmentSourceOperation"][]; + EnvironmentSourceOperationInput: { + /** The name of the operation to execute */ + operation: string; + /** The variables of the application. */ + variables: { [key: string]: { [key: string]: unknown } }; + }; + EnvironmentSynchronizeInput: { + /** Synchronize code? */ + synchronize_code: boolean; + /** Synchronize code by rebasing instead of merging */ + rebase: boolean; + /** Synchronize data? */ + synchronize_data: boolean; + }; + EnvironmentType: { + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + }; + EnvironmentTypeAccess: { + /** User */ + user?: string; + /** + * Role + * @enum {string} + */ + role: "admin" | "contributor" | "viewer"; + }; + EnvironmentTypeAccessCollection: components["schemas"]["EnvironmentTypeAccess"][]; + EnvironmentTypeAccessCreateInput: { + /** User */ + user?: string; + /** E-mail address */ + email?: string; + /** + * Role + * @enum {string} + */ + role: "admin" | "contributor" | "viewer"; + }; + EnvironmentTypeAccessPatch: { + /** + * Role + * @enum {string} + */ + role?: "admin" | "contributor" | "viewer"; + }; + EnvironmentTypeCollection: components["schemas"]["EnvironmentType"][]; + EnvironmentVariable: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json: boolean; + /** Project name */ + project: string; + /** Environment name */ + environment: string; + /** The variable is inherited from a parent environment */ + inherited: boolean; + /** The variable is enabled on this environment */ + is_enabled: boolean; + /** The variable is visible during build */ + visible_build: boolean; + /** The variable is visible at runtime */ + visible_runtime: boolean; + /** The variable is inheritable to child environments */ + is_inheritable: boolean; + /** The variable is sensitive */ + is_sensitive: boolean; + }; + EnvironmentVariableCollection: components["schemas"]["EnvironmentVariable"][]; + EnvironmentVariableCreateInput: { + /** Name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json?: boolean; + /** The variable is enabled on this environment */ + is_enabled?: boolean; + /** The variable is visible during build */ + visible_build?: boolean; + /** The variable is visible at runtime */ + visible_runtime?: boolean; + /** The variable is inheritable to child environments */ + is_inheritable?: boolean; + /** The variable is sensitive */ + is_sensitive?: boolean; + }; + EnvironmentVariablePatch: { + /** Name */ + name?: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json?: boolean; + /** The variable is enabled on this environment */ + is_enabled?: boolean; + /** The variable is visible during build */ + visible_build?: boolean; + /** The variable is visible at runtime */ + visible_runtime?: boolean; + /** The variable is inheritable to child environments */ + is_inheritable?: boolean; + /** The variable is sensitive */ + is_sensitive?: boolean; + }; + FastlyIntegrationStorage: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** Fastly Service ID */ + service_id: string; + }; + FastlyIntegrationStorageCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** Fastly API Token */ + token: string; + /** Fastly Service ID */ + service_id: string; + /** Internal CA certificate */ + ca_pem?: string; + }; + FastlyIntegrationStoragePatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** Fastly API Token */ + token: string; + /** Fastly Service ID */ + service_id: string; + /** Internal CA certificate */ + ca_pem?: string; + }; + FoundationDeploymentTarget: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** The hosts of the deployment target. */ + hosts: + | { + /** The identifier of the host. */ + id: string | null; + /** + * The type of the deployment to this host. + * @enum {string} + */ + type: "core" | "satellite"; + }[] + | null; + /** The storage type. */ + storage_type: string | null; + }; + FoundationDeploymentTargetCreateInput: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** The hosts of the deployment target. */ + hosts?: + | { + /** The identifier of the host. */ + id: string | null; + /** + * The type of the deployment to this host. + * @enum {string} + */ + type: "core" | "satellite"; + }[] + | null; + }; + FoundationDeploymentTargetPatch: { + /** + * The type of the deployment target. + * @enum {string} + */ + type: "dedicated" | "enterprise" | "local"; + /** The name of the deployment target. */ + name: string; + /** The hosts of the deployment target. */ + hosts?: + | { + /** The identifier of the host. */ + id: string | null; + /** + * The type of the deployment to this host. + * @enum {string} + */ + type: "core" | "satellite"; + }[] + | null; + }; + GitLabIntegration: { + /** Integration type */ + type: string; + /** The base URL of the GitLab installation. */ + base_url: string; + /** The GitLab project (in the form `namespace/repo`). */ + project: string; + /** Whether or not to fetch branches. */ + fetch_branches: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches: boolean; + /** Whether or not to build merge requests. */ + build_merge_requests: boolean; + /** Whether or not to build work in progress merge requests (requires `build_merge_requests`). */ + build_wip_merge_requests: boolean; + /** Whether or not to clone parent data when building merge requests. */ + merge_requests_clone_parent_data: boolean; + }; + GitLabIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The GitLab private token. */ + token: string; + /** The base URL of the GitLab installation. */ + base_url?: string; + /** The GitLab project (in the form `namespace/repo`). */ + project: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build merge requests. */ + build_merge_requests?: boolean; + /** Whether or not to build work in progress merge requests (requires `build_merge_requests`). */ + build_wip_merge_requests?: boolean; + /** Whether or not to clone parent data when building merge requests. */ + merge_requests_clone_parent_data?: boolean; + }; + GitLabIntegrationPatch: { + /** Integration type */ + type: string; + /** The GitLab private token. */ + token: string; + /** The base URL of the GitLab installation. */ + base_url?: string; + /** The GitLab project (in the form `namespace/repo`). */ + project: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build merge requests. */ + build_merge_requests?: boolean; + /** Whether or not to build work in progress merge requests (requires `build_merge_requests`). */ + build_wip_merge_requests?: boolean; + /** Whether or not to clone parent data when building merge requests. */ + merge_requests_clone_parent_data?: boolean; + }; + GithubIntegration: { + /** Integration type */ + type: string; + /** The base URL of the Github API endpoint. */ + base_url: string | null; + /** The GitHub repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests: boolean; + /** Whether or not to build draft pull requests (requires `build_pull_requests`). */ + build_draft_pull_requests: boolean; + /** Whether to build pull requests post-merge (if true) or pre-merge (if false). */ + build_pull_requests_post_merge: boolean; + /** Whether or not to clone parent data when building pull requests. */ + pull_requests_clone_parent_data: boolean; + }; + GithubIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The GitHub token. */ + token: string; + /** The base URL of the Github API endpoint. */ + base_url?: string | null; + /** The GitHub repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not to build draft pull requests (requires `build_pull_requests`). */ + build_draft_pull_requests?: boolean; + /** Whether to build pull requests post-merge (if true) or pre-merge (if false). */ + build_pull_requests_post_merge?: boolean; + /** Whether or not to clone parent data when building pull requests. */ + pull_requests_clone_parent_data?: boolean; + }; + GithubIntegrationPatch: { + /** Integration type */ + type: string; + /** The GitHub token. */ + token: string; + /** The base URL of the Github API endpoint. */ + base_url?: string | null; + /** The GitHub repository (in the form `user/repo`). */ + repository: string; + /** Whether or not to fetch branches. */ + fetch_branches?: boolean; + /** Whether or not to remove branches that disappeared remotely (requires `fetch_branches`). */ + prune_branches?: boolean; + /** Whether or not to build pull requests. */ + build_pull_requests?: boolean; + /** Whether or not to build draft pull requests (requires `build_pull_requests`). */ + build_draft_pull_requests?: boolean; + /** Whether to build pull requests post-merge (if true) or pre-merge (if false). */ + build_pull_requests_post_merge?: boolean; + /** Whether or not to clone parent data when building pull requests. */ + pull_requests_clone_parent_data?: boolean; + }; + HealthWebHookIntegration: { + /** Integration type */ + type: string; + /** The JWS shared secret key */ + shared_key: string | null; + /** The URL of the webhook */ + url: string; + }; + HealthWebHookIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The JWS shared secret key */ + shared_key?: string | null; + /** The URL of the webhook */ + url: string; + }; + HealthWebHookIntegrationPatch: { + /** Integration type */ + type: string; + /** The JWS shared secret key */ + shared_key?: string | null; + /** The URL of the webhook */ + url: string; + }; + HipChatIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The HipChat token */ + token: string; + /** The room ID or name to notify of the activities */ + room: string; + }; + HipChatIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The HipChat token */ + token: string; + /** The room ID or name to notify of the activities */ + room: string; + }; + HipChatIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The HipChat token */ + token: string; + /** The room ID or name to notify of the activities */ + room: string; + }; + Integration: + | components["schemas"]["BitbucketIntegration"] + | components["schemas"]["BitbucketServerIntegration"] + | components["schemas"]["BlackfireIntegrationStorage"] + | components["schemas"]["FastlyIntegrationStorage"] + | components["schemas"]["GithubIntegration"] + | components["schemas"]["GitLabIntegration"] + | components["schemas"]["EmailIntegration"] + | components["schemas"]["PagerDutyIntegration"] + | components["schemas"]["SlackIntegration"] + | components["schemas"]["HealthWebHookIntegration"] + | components["schemas"]["HipChatIntegration"] + | components["schemas"]["NewRelicIntegration"] + | components["schemas"]["ScriptIntegration"] + | components["schemas"]["SplunkIntegration"] + | components["schemas"]["SumologicIntegration"] + | components["schemas"]["WebHookIntegration"]; + IntegrationCollection: components["schemas"]["Integration"][]; + IntegrationCreateInput: + | components["schemas"]["BitbucketIntegrationCreateInput"] + | components["schemas"]["BitbucketServerIntegrationCreateInput"] + | components["schemas"]["BlackfireIntegrationStorageCreateInput"] + | components["schemas"]["FastlyIntegrationStorageCreateInput"] + | components["schemas"]["GithubIntegrationCreateInput"] + | components["schemas"]["GitLabIntegrationCreateInput"] + | components["schemas"]["EmailIntegrationCreateInput"] + | components["schemas"]["PagerDutyIntegrationCreateInput"] + | components["schemas"]["SlackIntegrationCreateInput"] + | components["schemas"]["HealthWebHookIntegrationCreateInput"] + | components["schemas"]["HipChatIntegrationCreateInput"] + | components["schemas"]["NewRelicIntegrationCreateInput"] + | components["schemas"]["ScriptIntegrationCreateInput"] + | components["schemas"]["SplunkIntegrationCreateInput"] + | components["schemas"]["SumologicIntegrationCreateInput"] + | components["schemas"]["WebHookIntegrationCreateInput"]; + IntegrationPatch: + | components["schemas"]["BitbucketIntegrationPatch"] + | components["schemas"]["BitbucketServerIntegrationPatch"] + | components["schemas"]["BlackfireIntegrationStoragePatch"] + | components["schemas"]["FastlyIntegrationStoragePatch"] + | components["schemas"]["GithubIntegrationPatch"] + | components["schemas"]["GitLabIntegrationPatch"] + | components["schemas"]["EmailIntegrationPatch"] + | components["schemas"]["PagerDutyIntegrationPatch"] + | components["schemas"]["SlackIntegrationPatch"] + | components["schemas"]["HealthWebHookIntegrationPatch"] + | components["schemas"]["HipChatIntegrationPatch"] + | components["schemas"]["NewRelicIntegrationPatch"] + | components["schemas"]["ScriptIntegrationPatch"] + | components["schemas"]["SplunkIntegrationPatch"] + | components["schemas"]["SumologicIntegrationPatch"] + | components["schemas"]["WebHookIntegrationPatch"]; + Mapping: { [key: string]: unknown }; + NewRelicIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The NewRelic Logs endpoint */ + url: string; + /** The NewRelic Logs License Key */ + license_key: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify: boolean; + }; + NewRelicIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The NewRelic Logs endpoint */ + url: string; + /** The NewRelic Logs License Key */ + license_key: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + NewRelicIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The NewRelic Logs endpoint */ + url: string; + /** The NewRelic Logs License Key */ + license_key: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + PagerDutyIntegration: { + /** Integration type */ + type: string; + /** The PagerDuty routing key */ + routing_key: string; + }; + PagerDutyIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The PagerDuty routing key */ + routing_key: string; + }; + PagerDutyIntegrationPatch: { + /** Integration type */ + type: string; + /** The PagerDuty routing key */ + routing_key: string; + }; + ProdDomainStorage: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Domain type */ + type: string; + /** Project name */ + project?: string; + /** Domain name */ + name: string; + /** Claimed domain name */ + registered_name?: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** Is this domain default */ + is_default?: boolean; + }; + ProdDomainStorageCreateInput: { + /** Domain type */ + type?: string; + /** Domain name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Is this domain default */ + is_default?: boolean; + }; + ProdDomainStoragePatch: { + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Is this domain default */ + is_default?: boolean; + }; + Project: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** Title */ + title: string; + /** Description */ + description: string; + /** Subscription information */ + subscription: { + /** URI of the subscription */ + license_uri: string; + /** + * Plan level + * @enum {string} + */ + plan?: + | "2xlarge" + | "4xlarge" + | "8xlarge" + | "development" + | "large" + | "medium" + | "standard" + | "xlarge"; + /** Number of environments */ + environments?: number; + /** Size of storage (in MB) */ + storage: number; + /** Number of users */ + included_users: number; + /** URI for managing the subscription */ + subscription_management_uri: string; + /** True if subscription attributes, like number of users, are frozen */ + restricted: boolean; + /** Whether or not the subscription is suspended */ + suspended: boolean; + /** Current number of users */ + user_licenses: number; + /** Resources limits */ + resources?: { + /** Resources for production environments */ + production: { + /** + * Maximum number of allocated CPU units. + * Format: float + */ + max_cpu: number; + /** Maximum amount of allocated RAM. */ + max_memory: number; + /** Maximum number of environments */ + max_environments: number; + }; + /** Resources for development environments */ + development: { + /** + * Maximum number of allocated CPU units. + * Format: float + */ + max_cpu: number; + /** Maximum amount of allocated RAM. */ + max_memory: number; + /** Maximum number of environments */ + max_environments: number; + }; + }; + /** URL for resources validation */ + resource_validation_url?: string; + /** Restricted and denied image types */ + image_types?: { + /** Image types to be allowed use. */ + only?: string[]; + /** Image types to be denied use. */ + exclude?: string[]; + }; + }; + /** + * Owner + * @deprecated + */ + owner: string; + /** The namespace the project belongs in */ + namespace: string | null; + /** The organization the project belongs in */ + organization: string | null; + /** Default branch */ + default_branch: string | null; + /** Status */ + status: { + /** Status code */ + code: string; + /** Status text */ + message: string; + }; + /** Timezone of the project */ + timezone: string; + /** Region */ + region: string; + /** Repository information */ + repository: { + /** Git URL */ + url: string; + /** SSH Key used to access external private repositories. */ + client_ssh_key: string | null; + }; + /** Default domain */ + default_domain: string | null; + }; + ProjectAccess: { + /** User */ + user?: string; + /** + * Role + * @enum {string} + */ + role: "admin" | "viewer"; + }; + ProjectAccessCollection: components["schemas"]["ProjectAccess"][]; + ProjectAccessCreateInput: { + /** User */ + user?: string; + /** E-mail address */ + email?: string; + /** + * Role + * @enum {string} + */ + role: "admin" | "viewer"; + }; + ProjectAccessPatch: { + /** + * Role + * @enum {string} + */ + role?: "admin" | "viewer"; + }; + ProjectCapabilities: { + /** Custom Domains */ + custom_domains?: { + /** If true, custom domains can be added to the project. */ + enabled: boolean; + /** Limit on the amount of non-production environments that can have domains set */ + environments_with_domains_limit: number; + }; + /** Integrations */ + integrations?: { + /** If true, integrations can be added to the project. */ + enabled: boolean; + /** List of integrations allowed to be added. */ + allowed_integrations?: string[]; + }; + /** Source Operations */ + source_operations?: { + /** If true, source operations can be triggered. */ + enabled: boolean; + }; + /** Outbound Firewall */ + outbound_firewall?: { + /** If true, outbound firewall can be used. */ + enabled: boolean; + }; + }; + ProjectPatch: { + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Title */ + title?: string; + /** Description */ + description?: string; + /** Default branch */ + default_branch?: string | null; + /** Timezone of the project */ + timezone?: string; + /** Region */ + region?: string; + /** Default domain */ + default_domain?: string | null; + }; + ProjectSettings: { + /** Initialization key */ + initialize: { [key: string]: unknown }; + /** The name of the product. */ + product_name: string; + /** The lowercase ASCII code of the product. */ + product_code: string; + /** The prefix of the generated environment variables. */ + variables_prefix: string; + /** The email of the bot. */ + bot_email: string; + /** The name of the application-specific configuration file. */ + application_config_file: string; + /** The name of the project configuration directory. */ + project_config_dir: string; + /** Whether to use the default Drupal-centric configuration files when missing from the repository. */ + use_drupal_defaults: boolean; + /** Whether to use legacy subdomain scheme, that replaces `.` by `---` in development subdomains. */ + use_legacy_subdomains: boolean; + /** + * The size of development services. + * @enum {string} + */ + development_service_size: "2XL" | "4XL" | "L" | "M" | "S" | "XL"; + /** + * The size of development applications. + * @enum {string} + */ + development_application_size: "2XL" | "4XL" | "L" | "M" | "S" | "XL"; + /** Enable automatic certificate provisioning. */ + enable_certificate_provisioning: boolean; + /** + * Certificate Style + * @enum {string} + */ + certificate_style: "ecdsa" | "rsa"; + /** Create an activity for certificate renewal */ + certificate_renewal_activity: boolean; + /** The template of the development domain, can include {project} and {environment} placeholders. */ + development_domain_template: string | null; + /** Enable the State API-driven deployments on regions that support them. */ + enable_state_api_deployments: boolean; + /** Set the size of the temporary disk (/tmp, in MB). */ + temporary_disk_size: number | null; + /** Minimum interval between cron runs (in minutes) */ + cron_minimum_interval: number; + /** The concurrency limits applied to different kind of activities */ + concurrency_limits: { [key: string]: number | null }; + /** Enable the flexible build cache implementation */ + flexible_build_cache: boolean; + /** Strict configuration validation. */ + strict_configuration: boolean; + /** Enable sleepy crons. */ + has_sleepy_crons: boolean; + /** Enable crons from git. */ + crons_in_git: boolean; + /** Custom error template for the router. */ + custom_error_template: string | null; + /** Custom error template for the application. */ + app_error_page_template: string | null; + /** + * The strategy used to generate environment machine names + * @enum {string} + */ + environment_name_strategy: "hash" | "name-and-hash"; + /** Data retention configuration */ + data_retention: { + /** Production */ + production: { + /** The maximum number of backups per environment */ + max_backups: number; + /** Default Config */ + default_config: { + /** The number of manual backups to keep. */ + manual_count: number; + /** The backup schedule specification. */ + schedule: { + /** The policy interval specification. */ + interval: string; + /** The number of backups to keep under this interval. */ + count: number; + }[]; + }; + }; + /** Development */ + development: { + /** The maximum number of backups per environment */ + max_backups: number; + /** Default Config */ + default_config: { + /** The number of manual backups to keep. */ + manual_count: number; + /** The backup schedule specification. */ + schedule: { + /** The policy interval specification. */ + interval: string; + /** The number of backups to keep under this interval. */ + count: number; + }[]; + }; + }; + } | null; + /** Enable pushing commits to codesource integration. */ + enable_codesource_integration_push: boolean; + /** Enforce multi-factor authentication. */ + enforce_mfa: boolean; + /** Use systemd images. */ + systemd: boolean; + /** Use the router v2 image. */ + router_gen2: boolean; + /** Chorus */ + chorus: { + /** Enable chorus service for collecting metrics. */ + enabled: boolean; + /** Expose metrics endpoint via API links. */ + exposed: boolean; + }; + /** Build Resources */ + build_resources: { + /** + * CPU + * Format: float + */ + cpu: number; + /** Memory */ + memory: number; + }; + /** + * The default policy for firewall outbound restrictions + * @enum {string} + */ + outbound_restrictions_default_policy: "allow" | "deny"; + /** Whether self-upgrades are enabled */ + self_upgrade: boolean; + /** A mapping of hostname to ip address to be added to the container's hosts file */ + additional_hosts: { [key: string]: string }; + /** Maximum number of routes allowed */ + max_allowed_routes: number; + /** Maximum number of redirect paths allowed */ + max_allowed_redirects_paths: number; + /** Enable incremental backups on regions that support them. */ + enable_incremental_backups: boolean; + /** Enable sizing api. */ + sizing_api_enabled: boolean; + /** Enable cache grace period. */ + enable_cache_grace_period: boolean; + /** Enable zero-downtime deployments for resource-only changes. */ + enable_zero_downtime_deployments: boolean; + /** Enable admin agent */ + enable_admin_agent: boolean; + /** The certifier url */ + certifier_url: string; + /** Whether centralized permissions are enabled */ + centralized_permissions: boolean; + }; + ProjectSettingsPatch: { + /** Initialization key */ + initialize?: { [key: string]: unknown }; + /** Chorus */ + chorus?: { [key: string]: unknown }; + /** Build Resources */ + build_resources?: { [key: string]: unknown }; + }; + ProjectVariable: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json: boolean; + /** The variable is sensitive */ + is_sensitive: boolean; + /** The variable is visible during build */ + visible_build: boolean; + /** The variable is visible at runtime */ + visible_runtime: boolean; + }; + ProjectVariableCollection: components["schemas"]["ProjectVariable"][]; + ProjectVariableCreateInput: { + /** Name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json?: boolean; + /** The variable is sensitive */ + is_sensitive?: boolean; + /** The variable is visible during build */ + visible_build?: boolean; + /** The variable is visible at runtime */ + visible_runtime?: boolean; + }; + ProjectVariablePatch: { + /** Name */ + name?: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Value */ + value?: string; + /** The variable is a JSON string */ + is_json?: boolean; + /** The variable is sensitive */ + is_sensitive?: boolean; + /** The variable is visible during build */ + visible_build?: boolean; + /** The variable is visible at runtime */ + visible_runtime?: boolean; + }; + ProxyRoute: { + /** This route is the primary route of the environment */ + primary: boolean | null; + /** Route Identifier */ + id: string | null; + /** How this URL route would look on production environment */ + production_url: string | null; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls: { + /** Strict-Transport-Security options. */ + strict_transport_security: { + /** Whether strict transport security is enabled or not. */ + enabled: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities: string[]; + }; + /** Proxy destination */ + to: string; + }; + ProxyRouteCreateInput: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Proxy destination */ + to: string; + }; + ProxyRoutePatch: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Proxy destination */ + to: string; + }; + RedirectRoute: { + /** This route is the primary route of the environment */ + primary: boolean | null; + /** Route Identifier */ + id: string | null; + /** How this URL route would look on production environment */ + production_url: string | null; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls: { + /** Strict-Transport-Security options. */ + strict_transport_security: { + /** Whether strict transport security is enabled or not. */ + enabled: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities: string[]; + }; + /** Redirect destination */ + to: string; + /** The configuration of the redirects. */ + redirects: { + /** The amount of time, in seconds, to cache the redirects. */ + expires: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires: string | null; + }; + }; + }; + }; + RedirectRouteCreateInput: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Redirect destination */ + to: string; + /** The configuration of the redirects. */ + redirects?: { + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp?: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix?: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix?: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code?: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string | null; + }; + }; + }; + }; + RedirectRoutePatch: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Redirect destination */ + to: string; + /** The configuration of the redirects. */ + redirects?: { + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp?: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix?: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix?: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code?: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string | null; + }; + }; + }; + }; + Ref: { + /** The name of the reference */ + ref: string; + /** The object the reference points to */ + object: { + /** The type of object pointed to */ + type: string; + /** The SHA of the object pointed to */ + sha: string; + }; + }; + RefCollection: components["schemas"]["Ref"][]; + ReplacementDomainStorage: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Domain type */ + type: string; + /** Project name */ + project?: string; + /** Domain name */ + name: string; + /** Claimed domain name */ + registered_name?: string; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** Prod domain which will be replaced by this domain. */ + replacement_for?: string; + }; + ReplacementDomainStorageCreateInput: { + /** Domain type */ + type?: string; + /** Domain name */ + name: string; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** Prod domain which will be replaced by this domain. */ + replacement_for?: string; + }; + ReplacementDomainStoragePatch: { + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + }; + Route: + | components["schemas"]["ProxyRoute"] + | components["schemas"]["RedirectRoute"] + | components["schemas"]["UpstreamRoute"]; + RouteCollection: components["schemas"]["Route"][]; + RouteCreateInput: + | components["schemas"]["ProxyRouteCreateInput"] + | components["schemas"]["RedirectRouteCreateInput"] + | components["schemas"]["UpstreamRouteCreateInput"]; + RoutePatch: + | components["schemas"]["ProxyRoutePatch"] + | components["schemas"]["RedirectRoutePatch"] + | components["schemas"]["UpstreamRoutePatch"]; + ScriptIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The script to run */ + script: string; + }; + ScriptIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The script to run */ + script: string; + }; + ScriptIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The script to run */ + script: string; + }; + SlackIntegration: { + /** Integration type */ + type: string; + /** The Slack token to use */ + token: string; + /** The Slack channel to post messages to */ + channel: string; + }; + SlackIntegrationCreateInput: { + /** Integration type */ + type: string; + /** The Slack token to use */ + token: string; + /** The Slack channel to post messages to */ + channel: string; + }; + SlackIntegrationPatch: { + /** Integration type */ + type: string; + /** The Slack token to use */ + token: string; + /** The Slack channel to post messages to */ + channel: string; + }; + SplunkIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The Splunk HTTP Event Connector REST API endpoint */ + url: string; + /** The Splunk Index */ + index: string; + /** The Splunk Authorization Token */ + token: string; + /** The event 'sourcetype' */ + sourcetype: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify: boolean; + }; + SplunkIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The Splunk HTTP Event Connector REST API endpoint */ + url: string; + /** The Splunk Index */ + index: string; + /** The Splunk Authorization Token */ + token: string; + /** The event 'sourcetype' */ + sourcetype?: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + SplunkIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The Splunk HTTP Event Connector REST API endpoint */ + url: string; + /** The Splunk Index */ + index: string; + /** The Splunk Authorization Token */ + token: string; + /** The event 'sourcetype' */ + sourcetype?: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + SumologicIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The Sumologic HTTPS endpoint */ + url: string; + /** The Category used to easy filtering (sent as X-Sumo-Category header) */ + category: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify: boolean; + }; + SumologicIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The Sumologic HTTPS endpoint */ + url: string; + /** The Category used to easy filtering (sent as X-Sumo-Category header) */ + category?: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + SumologicIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The Sumologic HTTPS endpoint */ + url: string; + /** The Category used to easy filtering (sent as X-Sumo-Category header) */ + category?: string; + /** Enable/Disable HTTPS certificate verification */ + tls_verify?: boolean; + }; + SystemInformation: { + /** The version of this project server */ + version: string; + /** + * Started At + * Format: date-time + */ + started_at: string; + }; + Tag: { + /** The identifier of the tag */ + sha: string; + /** The information about the tagger */ + tagger: { + /** + * The time of the author or committer + * Format: date-time + */ + date: string; + /** The name of the author or committer */ + name: string; + /** The email of the author or committer */ + email: string; + }; + /** The tag message */ + message: string; + /** The information about the object the tag points to */ + object: { + /** The type of object pointed to */ + type: string; + /** The SHA of the object pointed to */ + sha: string; + }; + }; + Tree: { + /** The identifier of the tree */ + sha: string; + /** The tree items */ + tree: { + /** The path of the item */ + path: string; + /** The mode of the item */ + mode: string; + /** The type of the item (blob or tree) */ + type: string; + /** The sha of the item */ + sha: string; + }[]; + }; + UpstreamRoute: { + /** This route is the primary route of the environment */ + primary: boolean | null; + /** Route Identifier */ + id: string | null; + /** How this URL route would look on production environment */ + production_url: string | null; + /** Arbitrary attributes attached to this resource */ + attributes: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls: { + /** Strict-Transport-Security options. */ + strict_transport_security: { + /** Whether strict transport security is enabled or not. */ + enabled: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities: string[]; + }; + /** Cache configuration. */ + cache: { + /** Whether the cache is enabled. */ + enabled: boolean; + /** The TTL to apply when the response doesn't specify one. Only applies to static files. */ + default_ttl: number; + /** The cookies to take into account for the cache key. */ + cookies: string[]; + /** The headers to take into account for the cache key. */ + headers: string[]; + }; + /** Server-Side Include configuration. */ + ssi: { + /** Whether SSI include is enabled. */ + enabled: boolean; + }; + /** The upstream to use for this route. */ + upstream: string; + /** The configuration of the redirects. */ + redirects: { + /** The amount of time, in seconds, to cache the redirects. */ + expires: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires: string | null; + }; + }; + }; + }; + UpstreamRouteCreateInput: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Cache configuration. */ + cache?: { + /** Whether the cache is enabled. */ + enabled: boolean; + /** The TTL to apply when the response doesn't specify one. Only applies to static files. */ + default_ttl?: number; + /** The cookies to take into account for the cache key. */ + cookies?: string[]; + /** The headers to take into account for the cache key. */ + headers?: string[]; + }; + /** Server-Side Include configuration. */ + ssi?: { + /** Whether SSI include is enabled. */ + enabled: boolean; + }; + /** The upstream to use for this route. */ + upstream: string; + /** The configuration of the redirects. */ + redirects?: { + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp?: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix?: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix?: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code?: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string | null; + }; + }; + }; + }; + UpstreamRoutePatch: { + /** This route is the primary route of the environment */ + primary?: boolean | null; + /** Route Identifier */ + id?: string | null; + /** How this URL route would look on production environment */ + production_url?: string | null; + /** Arbitrary attributes attached to this resource */ + attributes?: { [key: string]: string }; + /** + * Route type. + * @enum {string} + */ + type: "proxy" | "redirect" | "upstream"; + /** TLS settings for the route. */ + tls?: { + /** Strict-Transport-Security options. */ + strict_transport_security?: { + /** Whether strict transport security is enabled or not. */ + enabled?: boolean | null; + /** Whether the strict transport security policy should include all subdomains. */ + include_subdomains?: boolean | null; + /** Whether the strict transport security policy should be preloaded in browsers. */ + preload?: boolean | null; + }; + /** + * The minimum TLS version to support. + * @enum {string|null} + */ + min_version?: ("TLSv1.0" | "TLSv1.1" | "TLSv1.2" | "TLSv1.3") | null; + /** + * The type of client authentication to request. + * @enum {string|null} + */ + client_authentication?: ("request" | "require") | null; + /** Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used. */ + client_certificate_authorities?: string[]; + }; + /** Cache configuration. */ + cache?: { + /** Whether the cache is enabled. */ + enabled: boolean; + /** The TTL to apply when the response doesn't specify one. Only applies to static files. */ + default_ttl?: number; + /** The cookies to take into account for the cache key. */ + cookies?: string[]; + /** The headers to take into account for the cache key. */ + headers?: string[]; + }; + /** Server-Side Include configuration. */ + ssi?: { + /** Whether SSI include is enabled. */ + enabled: boolean; + }; + /** The upstream to use for this route. */ + upstream: string; + /** The configuration of the redirects. */ + redirects?: { + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string; + /** The paths to redirect */ + paths: { + [key: string]: { + /** Whether the path is a regular expression. */ + regexp?: boolean; + /** The URL to redirect to. */ + to: string; + /** Whether to redirect all the paths that start with the path. */ + prefix?: boolean | null; + /** Whether to append the incoming suffix to the redirected URL. */ + append_suffix?: boolean | null; + /** + * The redirect code to use. + * @enum {integer} + */ + code?: 301 | 302 | 307 | 308; + /** The amount of time, in seconds, to cache the redirects. */ + expires?: string | null; + }; + }; + }; + }; + UserKey: { + /** + * Creation date + * Format: date-time + */ + created_at: string | null; + /** + * Update date + * Format: date-time + */ + updated_at: string | null; + /** Name */ + name: string; + /** Key */ + key: string; + }; + WebHookIntegration: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events: string[]; + /** The environments to execute the hook on */ + environments: string[]; + /** The environments to not execute the hook on */ + excluded_environments: string[]; + /** Events to execute the hook on */ + states: string[]; + /** The JWS shared secret key */ + shared_key: string | null; + /** The URL of the webhook */ + url: string; + }; + WebHookIntegrationCreateInput: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The JWS shared secret key */ + shared_key?: string | null; + /** The URL of the webhook */ + url: string; + }; + WebHookIntegrationPatch: { + /** Integration type */ + type: string; + /** Events to execute the hook on */ + events?: string[]; + /** The environments to execute the hook on */ + environments?: string[]; + /** The environments to not execute the hook on */ + excluded_environments?: string[]; + /** Events to execute the hook on */ + states?: string[]; + /** The JWS shared secret key */ + shared_key?: string | null; + /** The URL of the webhook */ + url: string; + }; + /** @description The invoice object. */ + Invoice: { + /** @description The invoice id. */ + id?: string; + /** @description The invoice number. */ + invoice_number?: string; + /** + * @description Invoice type. + * @enum {string} + */ + type?: "invoice" | "credit_memo"; + /** @description The id of the related order. */ + order_id?: string; + /** @description If the invoice is a credit memo (type=credit_memo), this field stores the id of the related/original invoice. */ + related_invoice_id?: string | null; + /** + * @description The invoice status. + * @enum {string} + */ + status?: + | "paid" + | "charged_off" + | "pending" + | "refunded" + | "canceled" + | "refund_pending"; + /** + * Format: ulid + * @description The ULID of the owner. + */ + owner?: string; + /** + * Format: date-time + * @description The invoice date. + */ + invoice_date?: string | null; + /** + * Format: date-time + * @description The invoice due date. + */ + invoice_due?: string | null; + /** + * Format: date-time + * @description The time when the invoice was created. + */ + created?: string | null; + /** + * Format: date-time + * @description The time when the invoice was changed. + */ + changed?: string | null; + /** @description Company name (if any). */ + company?: string; + /** + * Format: double + * @description The invoice total. + */ + total?: number; + address?: components["schemas"]["Address"]; + /** @description The invoice note. */ + notes?: string; + invoice_pdf?: components["schemas"]["InvoicePDF"]; + }; + Organization: { + /** + * Format: ulid + * @description The ID of the organization. + */ + id?: string; + /** + * Format: uuid + * @description The ID of the owner. + */ + owner_id?: string; + /** @description The namespace in which the organization name is unique. */ + namespace?: string; + /** @description A unique machine name representing the organization. */ + name?: string; + /** @description The human-readable label of the organization. */ + label?: string; + /** @description The organization country (2-letter country code). */ + country?: string; + /** + * Format: date-time + * @description The date and time when the organization was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the organization was last updated. + */ + updated_at?: string; + _links?: { + /** @description Link to the current organization. */ + self?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link for updating the current organization. */ + update?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link for deleting the current organization. */ + delete?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link to the current organization's members. */ + members?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link for creating a new organization member. */ + "create-member"?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link to the current organization's address. */ + address?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the current organization's profile. */ + profile?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the current organization's payment source. */ + "payment-source"?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the current organization's orders. */ + orders?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the current organization's vouchers. */ + vouchers?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link for applying a voucher for the current organization. */ + "apply-voucher"?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link to the current organization's subscriptions. */ + subscriptions?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link for creating a new organization subscription. */ + "create-subscription"?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link for estimating the price of a new subscription. */ + "estimate-subscription"?: { + /** @description URL of the link. */ + href?: string; + }; + }; + }; + /** @description The referenced organization, or null if it no longer exists. */ + OrganizationReference: { + /** + * Format: ulid + * @description The ID of the organization. + */ + id?: string; + /** + * Format: uuid + * @description The ID of the owner. + */ + owner_id?: string; + /** @description A unique machine name representing the organization. */ + name?: string; + /** @description The human-readable label of the organization. */ + label?: string; + /** + * Format: date-time + * @description The date and time when the organization was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the organization was last updated. + */ + updated_at?: string; + } | null; + OrganizationMember: { + /** + * Format: ulid + * @description The ID of the member. + */ + id?: string; + /** + * Format: ulid + * @description The ID of the organization. + */ + organization_id?: string; + /** + * Format: uuid + * @description The ID of the user. + */ + user_id?: string; + permissions?: components["schemas"]["Permissions"]; + /** @description Whether the member is the organization owner. */ + owner?: boolean; + /** + * Format: date-time + * @description The date and time when the member was created. + */ + created_at?: string; + /** + * Format: date-time + * @description The date and time when the member was last updated. + */ + updated_at?: string; + _links?: { + /** @description Link to the current member. */ + self?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link for updating the current member. */ + update?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + /** @description Link for deleting the current member. */ + delete?: { + /** @description URL of the link. */ + href?: string; + /** @description The HTTP method to use. */ + method?: string; + }; + }; + }; + Vouchers: { + /** + * Format: uuid + * @description The uuid of the user. + */ + uuid?: string; + /** @description The total voucher credit given to the user. */ + vouchers_total?: string; + /** @description The part of total voucher credit applied to orders. */ + vouchers_applied?: string; + /** @description The remaining voucher credit, available for future orders. */ + vouchers_remaining_balance?: string; + /** @description The currency of the vouchers. */ + currency?: string; + /** @description Array of vouchers. */ + vouchers?: { + /** @description The voucher code. */ + code?: string; + /** @description The total voucher credit. */ + amount?: string; + /** @description The currency of the voucher. */ + currency?: string; + /** @description Array of orders to which a voucher applied. */ + orders?: { + /** @description The id of the order. */ + order_id?: string; + /** @description The status of the order. */ + status?: string; + /** @description The billing period start timestamp of the order (ISO 8601). */ + billing_period_start?: string; + /** @description The billing period end timestamp of the order (ISO 8601). */ + billing_period_end?: string; + /** @description The total of the order. */ + order_total?: string; + /** @description The total voucher credit applied to the order. */ + order_discount?: string; + /** @description The currency of the order. */ + currency?: string; + }[]; + }[]; + _links?: { + /** @description Link to the current resource. */ + self?: { + /** @description URL of the link. */ + href?: string; + }; + }; + }; + /** @description An array of permissions. Empty for owners, who have all permissions. */ + Permissions: ("billing" | "members" | "plans" | "projects:create")[]; + /** @description A price estimate object. */ + EstimationObject: { + /** @description The monthly price of the plan. */ + plan?: string; + /** @description The monthly price of the user licenses. */ + user_licenses?: string; + /** @description The monthly price of the environments. */ + environments?: string; + /** @description The monthly price of the storage. */ + storage?: string; + /** @description The total monthly price. */ + total?: string; + /** @description The unit prices of the options. */ + options?: { [key: string]: unknown }; + }; + ListLinks: { + /** @description Link to the current set of items. */ + self?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the previous set of items. */ + previous?: { + /** @description URL of the link. */ + href?: string; + }; + /** @description Link to the next set of items. */ + next?: { + /** @description URL of the link */ + href?: string; + }; + }; + DateTimeFilter: { + /** @description Equal */ + eq?: string; + /** @description Not equal */ + ne?: string; + /** @description Between (comma-separated list) */ + between?: string; + /** @description Greater than */ + gt?: string; + /** @description Greater than or equal */ + gte?: string; + /** @description Less than */ + lt?: string; + /** @description Less than or equal */ + lte?: string; + }; + StringFilter: { + /** @description Equal */ + eq?: string; + /** @description Not equal */ + ne?: string; + /** @description In (comma-separated list) */ + in?: string; + /** @description Not in (comma-separated list) */ + nin?: string; + /** @description Between (comma-separated list) */ + between?: string; + /** @description Contains */ + contains?: string; + /** @description Starts with */ + starts?: string; + /** @description Ends with */ + ends?: string; + }; + /** @description Invoice PDF document details. */ + InvoicePDF: { + /** @description A link to the PDF invoice. */ + url?: string; + /** + * @description The status of the PDF document. We generate invoice PDF asyncronously in batches. An invoice PDF document may not be immediately available to download. If status is 'ready', the PDF is ready to download. 'pending' means the PDF is not created but queued up. If you get this status, try again later. + * @enum {string} + */ + status?: "ready" | "pending"; + }; + /** @description The order object. */ + Order: { + /** @description The ID of the order. */ + id?: string; + /** + * @description The status of the subscription. + * @enum {string} + */ + status?: + | "completed" + | "past_due" + | "pending" + | "canceled" + | "payment_failed_soft_decline" + | "payment_failed_hard_decline"; + /** + * Format: uuid + * @description The UUID of the owner. + */ + owner?: string; + address?: components["schemas"]["Address"]; + /** @description An identifier used in many countries for value added tax purposes. */ + vat_number?: string; + /** + * Format: date-time + * @description The time when the billing period of the order started. + */ + billing_period_start?: string; + /** + * Format: date-time + * @description The time when the billing period of the order ended. + */ + billing_period_end?: string; + /** @description The duration of the billing period of the order in seconds. */ + billing_period_duration?: number; + /** + * Format: date-time + * @description The time when the order was successfully charged. + */ + paid_on?: string | null; + /** @description The total of the order. */ + total?: number; + components?: components["schemas"]["Components"]; + /** @description The order currency code. */ + currency?: string; + /** @description A link to the PDF invoice. */ + invoice_url?: string; + /** @description Links to related API endpoints. */ + _links?: { + /** @description Link to related Invoices API. Use this to retrieve invoices related to this order. */ + invoices?: { + /** @description URL of the link */ + href?: string; + }; + }; + }; + /** @description The plan record object. */ + PlanRecords: { + /** @description The unique ID of the plan record. */ + id?: string; + /** + * Format: uuid + * @description The UUID of the owner. + */ + owner?: string; + /** @description The ID of the subscription this record pertains to. */ + subscription_id?: string; + /** @description The product SKU of the plan that this record represents. */ + sku?: string; + /** @description The machine name of the plan that this record represents. */ + plan?: string; + /** @description Restful plugin exposing API at /records/plan. */ + options?: string[]; + /** + * Format: date-time + * @description The start timestamp of this plan record (ISO 8601). + */ + start?: string; + /** + * Format: date-time + * @description The end timestamp of this plan record (ISO 8601). + */ + end?: string | null; + /** @description The status of the subscription during this record: active or suspended. */ + status?: string; + }; + /** @description The usage object. */ + Usage: { + /** @description The unique ID of the usage record. */ + id?: string; + /** @description The ID of the subscription. */ + subscription_id?: string; + /** @description The type of usage that this record represents. */ + usage_group?: string; + /** @description The quantity used. */ + quantity?: number; + /** + * Format: date-time + * @description The start timestamp of this usage record (ISO 8601). + */ + start?: string; + }; + /** @description The hosting region. */ + Region: { + /** @description The ID of the region. */ + id?: string; + /** @description The human-readable name of the region. */ + label?: string; + /** @description Geographical zone of the region */ + zone?: string; + /** @description The label to display when choosing between regions for new projects. */ + selection_label?: string; + /** @description The label to display on existing projects. */ + project_label?: string; + /** @description Default timezone of the region */ + timezone?: string; + /** @description Indicator whether or not this region is selectable during the checkout. Not available regions will never show up during checkout. */ + available?: boolean; + /** @description Indicator whether or not this platform is for private use only. */ + private?: boolean; + /** @description Link to the region API endpoint. */ + endpoint?: string; + /** @description Information about the Cloud Service Provider. */ + provider?: { + name?: string; + logo?: string; + }[]; + /** @description Array with info about the region provider data center. */ + datacenter?: { + name?: string; + label?: string; + location?: string; + }[]; + /** @description Array with info about the region provider's environmental impact. */ + environmental_impact?: { + zone?: string; + carbon_intensity?: string; + }[]; + }; + }; + responses: {}; + parameters: { + /** @description The invoice type. Use invoice for standard invoices, credit_memo for refund/credit invoices. */ + filter_invoice_type: "credit_memo" | "invoice"; + /** @description The order id of Invoice. */ + filter_order_id: string; + /** @description The status of the invoice. */ + filter_invoice_status: + | "paid" + | "charged_off" + | "pending" + | "refunded" + | "canceled" + | "refund_pending"; + /** @description The status of the order. */ + filter_order_status: + | "completed" + | "past_due" + | "pending" + | "canceled" + | "payment_failed_soft_decline" + | "payment_failed_hard_decline"; + /** @description The total of the order. */ + filter_order_total: number; + /** @description The end of the observation period for the record. E.g. filter[end]=2018-01-01 will display all records that were active on (i.e. they started before) 2018-01-01 */ + record_end: string; + /** @description The record's end timestamp. You can use this filter to list records ended after, or before a certain time. E.g. filter[ended_at][value]=2020-01-01&filter[ended_at][operator]=> */ + record_ended_at: string; + /** @description The status of the plan record. */ + record_status: "active" | "suspended"; + /** @description Filter records by the type of usage. */ + record_usage_group: "storage" | "environments" | "user_licenses"; + /** @description The start of the observation period for the record. E.g. filter[start]=2018-01-01 will display all records that were active (i.e. did not end) on 2018-01-01 */ + record_start: string; + /** @description The record's start timestamp. You can use this filter to list records started after, or before a certain time. E.g. filter[started_at][value]=2020-01-01&filter[started_at][operator]=> */ + record_started_at: string; + /** @description Geographical zone of the region. */ + region_zone: string; + /** @description Value 0 displays only disabled regions. Value 1 displays only enabled ones. */ + region_available: string; + /** @description Value 0 displays only public regions. Value 1 displays only private ones. */ + region_private: string; + /** @description The ID of the project */ + projectId: string; + /** @description The ID of the subscription */ + filter_subscription_id: string; + /** @description The status of the subscription. */ + subscription_status: + | "active" + | "provisioning" + | "provisioning failure" + | "suspended" + | "deleted"; + /** @description The UUID of the owner. */ + filter_subscription_owner: string; + /** @description The plan type of the subscription. */ + filter_subscription_plan: + | "development" + | "standard" + | "medium" + | "large" + | "xlarge" + | "2xlarge"; + /** @description Page to be displayed. Defaults to 1. */ + page: number; + /** @description The UUID of the user */ + user_id: string; + /** @description The ID of the ticket. */ + filter_ticket_id: number; + /** @description ISO dateformat expected. The time when the support ticket was created. */ + filter_created: string; + /** @description ISO dateformat expected. The time when the support ticket was updated. */ + filter_updated: string; + /** @description The type of the support ticket. */ + filter_type: "problem" | "task" | "incident" | "question"; + /** @description The priority of the support ticket. */ + filter_priority: "low" | "normal" | "high" | "urgent"; + /** @description The status of the support ticket. */ + filter_ticket_status: + | "closed" + | "deleted" + | "hold" + | "new" + | "open" + | "pending" + | "solved"; + /** @description UUID of the ticket requester. Converted from the ZID value. */ + filter_requester_id: string; + /** @description UUID of the ticket submitter. Converted from the ZID value. */ + filter_submitter_id: string; + /** @description UUID of the ticket assignee. Converted from the ZID value. */ + filter_assignee_id: string; + /** @description Whether or not this ticket has incidents. */ + filter_has_incidents: boolean; + /** @description ISO dateformat expected. A time that the ticket is due at. */ + filter_due: string; + /** @description The ID of the invitation. */ + InvitationID: string; + /** @description The ID of the organization. */ + OrganizationID: string; + /** @description The ID of the project. */ + ProjectID: string; + /** @description The ID of the user. */ + UserID: string; + /** + * @description The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + OrganizationIDName: string; + /** @description The ID of the order. */ + OrderID: string; + /** @description The ID of the member. */ + MemberID: string; + /** @description The ID of the subscription. */ + SubscriptionID: string; + /** @description The ID of the invoice. */ + InvoiceID: string; + }; +} + +export interface operations { + /** Retrieve information about the currently logged-in user (the user associated with the access token). */ + "get-current-user-deprecated": { + responses: { + /** The user object. */ + 200: { + content: { + "application/json": components["schemas"]["CurrentUser"]; + }; + }; + }; + }; + "get-ssh-key": { + parameters: { + path: { + /** The ID of the ssh key. */ + key_id: number; + }; + }; + responses: { + /** A single SSH public key record. */ + 200: { + content: { + "application/json": components["schemas"]["SSHKey"]; + }; + }; + }; + }; + "delete-ssh-key": { + parameters: { + path: { + /** The ID of the ssh key. */ + key_id: number; + }; + }; + responses: { + /** Success. */ + 204: never; + }; + }; + "create-ssh-key": { + responses: { + /** The newly created ssh key. */ + 201: { + content: { + "application/json": components["schemas"]["SSHKey"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The value of the ssh key. */ + value: string; + /** @description The title of the ssh key. */ + title?: string; + /** @description The uuid of the user. */ + uuid?: string; + }; + }; + }; + }; + /** Retrieve information about plans and pricing on Platform.sh. */ + "list-plans": { + responses: { + /** The list of plans. */ + 200: { + content: { + "application/json": { + /** @description Total number of plans. */ + count?: number; + /** @description Array of plans. */ + plans?: components["schemas"]["Plan"][]; + _links?: components["schemas"]["HalLinks"]; + }; + }; + }; + }; + }; + /** + * Returns a paginated list of all the projects associated with a given UUID. + * The returned information includes each project's respective endpoint and + * management console URLs, as well as information about the project owner. + */ + "locate-projects": { + parameters: { + query: { + /** The UUID of the owner. */ + "filter[owner]"?: components["parameters"]["filter_subscription_owner"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** The list of projects. */ + 200: { + content: { + "application/json": { + /** @description Total number of results. */ + count?: number; + /** @description Array of standard project information. */ + projects?: components["schemas"]["ProjectLink"][]; + _links?: components["schemas"]["HalLinks"]; + }; + }; + }; + }; + }; + /** Returns a project's endpoint and management console URLs, as well as information about the project owner. */ + "locate-project": { + parameters: { + path: { + /** The ID of the project */ + projectId: components["parameters"]["projectId"]; + }; + }; + responses: { + /** A Project object */ + 200: { + content: { + "application/json": components["schemas"]["ProjectLink"]; + }; + }; + }; + }; + "list-profiles": { + responses: { + /** The list of user profiles. */ + 200: { + content: { + "application/json": { + /** @description Total number of results. */ + count?: number; + /** @description Array of user profiles. */ + profiles?: components["schemas"]["Profile"][]; + _links?: components["schemas"]["HalLinks"]; + }; + }; + }; + }; + }; + "get-profile": { + parameters: { + path: { + /** The UUID of the user */ + userId: components["parameters"]["user_id"]; + }; + }; + responses: { + /** A User profile object */ + 200: { + content: { + "application/json": components["schemas"]["Profile"]; + }; + }; + }; + }; + /** Update a user profile, supplying one or more key/value pairs to to change. */ + "update-profile": { + parameters: { + path: { + /** The UUID of the user */ + userId: components["parameters"]["user_id"]; + }; + }; + responses: { + /** A User profile object */ + 200: { + content: { + "application/json": components["schemas"]["Profile"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The user's display name. */ + display_name?: string; + /** @description The user's username. */ + username?: string; + /** @description The user's current password. */ + current_password?: string; + /** @description The user's new password. */ + password?: string; + /** @description The company type. */ + company_type?: string; + /** @description The name of the company. */ + company_name?: string; + /** @description The vat number of the user. */ + vat_number?: string; + /** @description The role of the user in the company. */ + company_role?: string; + /** @description Flag if the user agreed to receive marketing communication. */ + marketing?: boolean; + /** @description The user's chosen color scheme for user interfaces. Available values are 'light' and 'dark'. */ + ui_colorscheme?: string; + /** @description The URL of a catalog file which overrides the default. */ + default_catalog?: string; + /** @description The URL of an account-wide project options file. */ + project_options_url?: string; + /** @description Url of the user's picture. */ + picture?: string; + }; + }; + }; + }; + "get-address": { + parameters: { + path: { + /** The UUID of the user */ + userId: components["parameters"]["user_id"]; + }; + }; + responses: { + /** A User profile object */ + 200: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + }; + }; + /** Update a user address, supplying one or more key/value pairs to to change. */ + "update-address": { + parameters: { + path: { + /** The UUID of the user */ + userId: components["parameters"]["user_id"]; + }; + }; + responses: { + /** A user address object */ + 200: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + }; + "create-profile-picture": { + parameters: { + path: { + /** The uuid of the user */ + uuid: string; + }; + }; + responses: { + /** The new picture url. */ + 200: { + content: { + "application/json": { + /** @description The relative url of the picture. */ + url?: string; + }; + }; + }; + }; + }; + "delete-profile-picture": { + parameters: { + path: { + /** The uuid of the user */ + uuid: string; + }; + }; + responses: { + /** No Content success. */ + 204: never; + }; + }; + "list-tickets": { + parameters: { + query: { + /** The ID of the ticket. */ + "filter[ticket_id]"?: components["parameters"]["filter_ticket_id"]; + /** ISO dateformat expected. The time when the support ticket was created. */ + "filter[created]"?: components["parameters"]["filter_created"]; + /** ISO dateformat expected. The time when the support ticket was updated. */ + "filter[updated]"?: components["parameters"]["filter_updated"]; + /** The type of the support ticket. */ + "filter[type]"?: components["parameters"]["filter_type"]; + /** The priority of the support ticket. */ + "filter[priority]"?: components["parameters"]["filter_priority"]; + /** The status of the support ticket. */ + "filter[status]"?: components["parameters"]["filter_ticket_status"]; + /** UUID of the ticket requester. Converted from the ZID value. */ + "filter[requester_id]"?: components["parameters"]["filter_requester_id"]; + /** UUID of the ticket submitter. Converted from the ZID value. */ + "filter[submitter_id]"?: components["parameters"]["filter_submitter_id"]; + /** UUID of the ticket assignee. Converted from the ZID value. */ + "filter[assignee_id]"?: components["parameters"]["filter_assignee_id"]; + /** Whether or not this ticket has incidents. */ + "filter[has_incidents]"?: components["parameters"]["filter_has_incidents"]; + /** ISO dateformat expected. A time that the ticket is due at. */ + "filter[due]"?: components["parameters"]["filter_due"]; + /** Search string for the ticket subject and description. */ + search?: string; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** The list of tickets. */ + 200: { + content: { + "application/json": { + /** @description Total number of results. */ + count?: number; + /** @description Array of support tickets. */ + tickets?: components["schemas"]["Ticket"][]; + _links?: components["schemas"]["HalLinks"]; + }; + }; + }; + }; + }; + "create-ticket": { + responses: { + /** A Support Ticket object */ + 200: { + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A title of the ticket. */ + subject: string; + /** @description The description body of the support ticket. */ + description: string; + /** + * Format: uuid + * @description UUID of the ticket requester. Converted from the ZID value. + */ + requester_id?: string; + /** + * @description A priority of the ticket. + * @enum {string} + */ + priority?: "low" | "normal" | "high" | "urgent"; + /** @description see create() */ + subscription_id?: string; + /** + * Format: url + * @description see create(). + */ + affected_url?: string; + /** @description The unique ID of the ticket which this ticket is a follow-up to. */ + followup_tid?: string; + /** + * @description The category of the support ticket. + * @enum {string} + */ + category?: + | "access" + | "billing_question" + | "complaint" + | "compliance_question" + | "configuration_change" + | "general_question" + | "incident_outage" + | "bug_report" + | "report_a_gui_bug" + | "onboarding" + | "close_my_account"; + /** @description A list of attachments for the ticket. */ + attachments?: { + /** @description The filename to be used in storage. */ + filename?: string; + /** @description the base64 encoded file. */ + data?: string; + }[]; + }; + }; + }; + }; + "solve-ticket": { + parameters: { + path: { + /** The ID of the ticket */ + ticket_id: string; + }; + }; + responses: { + /** Success. */ + 200: { + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + /** The ticket was not updated. */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The status of the support ticket. + * @enum {string} + */ + status?: "open" | "solved"; + }; + }; + }; + }; + "list-ticket-priorities": { + parameters: { + query: { + /** The ID of the subscription the ticket should be related to */ + subscription_id?: string; + /** The category of the support ticket. */ + category?: string; + }; + }; + responses: { + /** An array of available priorities for that license. */ + 200: { + content: { + "application/json": { + /** @description Machine name of the priority. */ + id?: string; + /** @description The human-readable label of the priority. */ + label?: string; + /** @description The short description of the priority. */ + short_description?: string; + /** @description The long description of the priority. */ + description?: string; + }[]; + }; + }; + }; + }; + "list-ticket-categories": { + responses: { + /** An array of available categories for a ticket. */ + 200: { + content: { + "application/json": { + /** @description Machine name of the category as is listed in zendesk. */ + id?: string; + /** @description The human-readable label of the category. */ + label?: string; + }[]; + }; + }; + }; + }; + /** Returns a list of all pending invitations to an organization. */ + "list-org-invites": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["OrganizationInvitation"][]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates an invitation to an organization for a user with the specified email address. */ + "create-org-invite": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["OrganizationInvitation"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict when there already is a pending invitation for the invitee */ + 409: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * Format: email + * @description The email address of the invitee. + */ + email: string; + /** @description The permissions the invitee should be given on the organization. */ + permissions: ("billing" | "plans" | "members" | "projects:create")[]; + /** @description Whether to cancel any pending invitation for the specified invitee, and create a new invitation. */ + force?: boolean; + }; + }; + }; + }; + /** Cancels the specified invitation. */ + "cancel-org-invite": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the invitation. */ + invitation_id: components["parameters"]["InvitationID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Returns a list of all pending invitations to a project. */ + "list-project-invites": { + parameters: { + path: { + /** The ID of the project. */ + project_id: components["parameters"]["ProjectID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["ProjectInvitation"][]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates an invitation to a project for a user with the specified email address. */ + "create-project-invite": { + parameters: { + path: { + /** The ID of the project. */ + project_id: components["parameters"]["ProjectID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["ProjectInvitation"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Payment Required when the number of users exceeds the subscription limit */ + 402: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict when there already is a pending invitation for the invitee */ + 409: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The role the invitee should be given on the project. + * @default null + * @enum {string} + */ + role?: "admin" | "viewer"; + /** + * Format: email + * @description The email address of the invitee. + */ + email: string; + environments?: { + /** @description The ID of the environment. */ + id?: string; + /** + * @description The role the invitee should be given on the environment. + * @enum {string} + */ + role?: "admin" | "viewer" | "contributor"; + }[]; + /** @description Whether to cancel any pending invitation for the specified invitee, and create a new invitation. */ + force?: boolean; + }; + }; + }; + }; + /** Cancels the specified invitation. */ + "cancel-project-invite": { + parameters: { + path: { + /** The ID of the project. */ + project_id: components["parameters"]["ProjectID"]; + /** The ID of the invitation. */ + invitation_id: components["parameters"]["InvitationID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves a list of users referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the _links object with a key like ref:users:0. */ + "list-referenced-users": { + parameters: { + query: { + /** The list of comma-separated user IDs generated by a trusted service. */ + in: string; + /** The signature of this request generated by a trusted service. */ + sig: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + [key: string]: components["schemas"]["UserReference"]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves the current user, determined from the used access token. */ + "get-current-user": { + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["User"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves a user matching the specified email address. */ + "get-user-by-email-address": { + parameters: { + path: { + /** The user's email address. */ + email: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["User"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves a user matching the specified username. */ + "get-user-by-username": { + parameters: { + path: { + /** The user's username. */ + username: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["User"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves the specified user. */ + "get-user": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["User"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Updates the specified user. */ + "update-user": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["User"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The user's username. */ + username?: string; + /** @description The user's first name. */ + first_name?: string; + /** @description The user's last name. */ + last_name?: string; + /** + * Format: uri + * @description The user's picture. + */ + picture?: string; + /** @description The user's company. */ + company?: string; + /** + * Format: uri + * @description The user's website. + */ + website?: string; + /** @description The user's country (2-letter country code). */ + country?: string; + }; + }; + }; + }; + /** Requests a reset of the user's email address. A confirmation email will be sent to the new address when the request is accepted. */ + "reset-email-address": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict */ + 409: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** Format: email */ + email_address: string; + }; + }; + }; + }; + /** Requests a reset of the user's password. A password reset email will be sent to the user when the request is accepted. */ + "reset-password": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves a list of API tokens associated with a single user. */ + "list-api-tokens": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["APIToken"][]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates an API token */ + "create-api-token": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["APIToken"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict */ + 409: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The token name. */ + name: string; + }; + }; + }; + }; + /** Retrieves the specified API token. */ + "get-api-token": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + /** The ID of the token. */ + token_id: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["APIToken"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Deletes an API token */ + "delete-api-token": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + /** The ID of the token. */ + token_id: string; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves a list of connections associated with a single user. */ + "list-login-connections": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Connection"][]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves the specified connection. */ + "get-login-connection": { + parameters: { + path: { + /** The name of the federation provider. */ + provider: string; + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Connection"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Deletes the specified connection. */ + "delete-login-connection": { + parameters: { + path: { + /** The name of the federation provider. */ + provider: string; + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieves TOTP enrollment information. */ + "get-totp-enrollment": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + /** Format: uri */ + issuer?: string; + /** @description Account name for the enrollment. */ + account_name?: string; + /** @description The secret seed for the enrollment */ + secret?: string; + /** + * Format: byte + * @description Data URI of a PNG QR code image for the enrollment. + */ + qr_code?: string; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict */ + 409: unknown; + }; + }; + /** Confirms the given TOTP enrollment. */ + "confirm-totp-enrollment": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + /** @description A list of recovery codes for the MFA enrollment. */ + recovery_codes?: string[]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Conflict */ + 409: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The secret seed for the enrollment */ + secret: string; + /** @description TOTP passcode for the enrollment */ + passcode: string; + }; + }; + }; + }; + /** Withdraws from the TOTP enrollment. */ + "withdraw-totp-enrollment": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Re-creates recovery codes for the MFA enrollment. */ + "recreate-recovery-codes": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": { + /** @description A list of recovery codes for the MFA enrollment. */ + recovery_codes?: string[]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: unknown; + }; + }; + /** Retrieve the details of a single project. */ + "get-projects": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Project"]; + }; + }; + }; + }; + /** Delete the entire project. */ + "delete-projects": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** Update the details of an existing project. */ + "update-projects": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectPatch"]; + }; + }; + }; + /** + * Retrieve a list of objects specifying the users with access to a project + * and those users' roles. + */ + "list-projects-access": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectAccessCollection"]; + }; + }; + }; + }; + /** + * Add a user to a project's access control list + * + * > **Note**: + * > + * > For more granular control and invitation by email, use [`/invitations`](#tag/Invitation). + */ + "create-projects-access": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectAccessCreateInput"]; + }; + }; + }; + /** + * Retrieve the details of a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + "get-projects-access": { + parameters: { + path: { + projectId: string; + projectAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectAccess"]; + }; + }; + }; + }; + /** + * Remove a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + "delete-projects-access": { + parameters: { + path: { + projectId: string; + projectAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Change the role of a user from a project's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get project access control list](#tag/Project-Access%2Fpaths%2F~1projects~1%7BprojectId%7D~1access%2Fget) + * endpoint. + */ + "update-projects-access": { + parameters: { + path: { + projectId: string; + projectAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectAccessPatch"]; + }; + }; + }; + /** + * Retrieve a project's activity log including logging actions in all + * environments within a project. This returns a list of objects + * with records of actions such as: + * + * - Commits being pushed to the repository + * - A new environment being branched out from the specified environment + * - A snapshot being created of the specified environment + * + * The object includes a timestamp of when the action occurred + * (`created_at`), when the action concluded (`updated_at`), + * the current `state` of the action, the action's completion + * percentage (`completion_percent`), the `environments` it + * applies to and other related information in + * the `payload`. + * + * The contents of the `payload` varies based on the `type` of the + * activity. For example: + * + * - An `environment.branch` action's `payload` can contain objects + * representing the environment's `parent` environment and the + * branching action's `outcome`. + * + * - An `environment.push` action's `payload` can contain objects + * representing the `environment`, the specific `commits` included in + * the push, and the `user` who pushed. + */ + "list-projects-activities": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ActivityCollection"]; + }; + }; + }; + }; + /** + * Retrieve a single activity log entry as specified by an + * `id` returned by the + * [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget) + * endpoint. See the documentation on that endpoint for details about + * the information this endpoint can return. + */ + "get-projects-activities": { + parameters: { + path: { + projectId: string; + activityId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Activity"]; + }; + }; + }; + }; + /** + * Cancel a single activity as specified by an `id` returned by the + * [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget) + * endpoint. + * + * Please note that not all activities are cancelable. + */ + "action-projects-activities-cancel": { + parameters: { + path: { + projectId: string; + activityId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Get a list of capabilities on a project, as defined by the billing system. + * For instance, one special capability that could be defined on a project is + * large development environments. + */ + "get-projects-capabilities": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectCapabilities"]; + }; + }; + }; + }; + /** + * Retrieve a list of objects representing the SSL certificates + * associated with a project. + */ + "list-projects-certificates": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["CertificateCollection"]; + }; + }; + }; + }; + /** Add a single SSL certificate to a project. */ + "create-projects-certificates": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CertificateCreateInput"]; + }; + }; + }; + /** + * Retrieve information about a single SSL certificate + * associated with a project. + */ + "get-projects-certificates": { + parameters: { + path: { + projectId: string; + certificateId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Certificate"]; + }; + }; + }; + }; + /** Delete a single SSL certificate associated with a project. */ + "delete-projects-certificates": { + parameters: { + path: { + projectId: string; + certificateId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** Update a single SSL certificate associated with a project. */ + "update-projects-certificates": { + parameters: { + path: { + projectId: string; + certificateId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CertificatePatch"]; + }; + }; + }; + /** + * On rare occasions, a project's build cache can become corrupted. This + * endpoint will entirely flush the project's build cache. More information + * on [clearing the build cache can be found in our user documentation.](https://docs.platform.sh/development/troubleshoot.html#clear-the-build-cache) + */ + "action-projects-clear-build-cache": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** The deployment target information for the project. */ + "list-projects-deployments": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["DeploymentTargetCollection"]; + }; + }; + }; + }; + /** Set the deployment target information for a project. */ + "create-projects-deployments": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DeploymentTargetCreateInput"]; + }; + }; + }; + /** Get a single deployment target configuration of a project. */ + "get-projects-deployments": { + parameters: { + path: { + projectId: string; + deploymentTargetConfigurationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["DeploymentTarget"]; + }; + }; + }; + }; + /** Delete a single deployment target configuration associated with a specific project. */ + "delete-projects-deployments": { + parameters: { + path: { + projectId: string; + deploymentTargetConfigurationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + "update-projects-deployments": { + parameters: { + path: { + projectId: string; + deploymentTargetConfigurationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DeploymentTargetPatch"]; + }; + }; + }; + /** + * Retrieve a list of objects representing the user-specified domains + * associated with a project. Note that this does *not* return the + * domains automatically assigned to a project that appear under + * "Access site" on the user interface. + */ + "list-projects-domains": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["DomainCollection"]; + }; + }; + }; + }; + /** + * Add a single domain to a project. + * If the `ssl` field is left blank without an object containing + * a PEM-encoded SSL certificate, a certificate will + * [be provisioned for you via Let's Encrypt.](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt) + */ + "create-projects-domains": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DomainCreateInput"]; + }; + }; + }; + /** + * Retrieve information about a single user-specified domain + * associated with a project. + */ + "get-projects-domains": { + parameters: { + path: { + projectId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Domain"]; + }; + }; + }; + }; + /** Delete a single user-specified domain associated with a project. */ + "delete-projects-domains": { + parameters: { + path: { + projectId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update the information associated with a single user-specified + * domain associated with a project. + */ + "update-projects-domains": { + parameters: { + path: { + projectId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DomainPatch"]; + }; + }; + }; + /** List all available environment types */ + "list-projects-environment-types": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentTypeCollection"]; + }; + }; + }; + }; + /** Lists the endpoints used to retrieve info about the environment type. */ + "get-environment-type": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentType"]; + }; + }; + }; + }; + /** + * Retrieve a list of objects for users and their roles for the + * given environment type. + */ + "list-environment-type-access": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessCollection"]; + }; + }; + }; + }; + /** + * Add a user to an environment type's access control list + * + * > **Note**: + * > + * > For more granular control and invitation by email, use [`/invitations`](#tag/Invitation). + */ + "create-environment-type-access": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessCreateInput"]; + }; + }; + }; + /** + * Retrieve the details of a user from an environment type's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get environment type's access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + "get-environment-type-access": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + environmentTypeAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccess"]; + }; + }; + }; + }; + /** + * Remove a user from an environment type's access control list. + * using the `id` of the entry in the access control list + * retrieved with the [Get environment type access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + "delete-environment-type-access": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + environmentTypeAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update the role of a user from an environment type's access control list + * using the `id` of the entry in the access control list + * retrieved with the [Get environment access control list](#tag/Environment-Type-Access/paths/~1projects~1{projectId}~1environment-types~1{environmentTypeId}~1access/get) + * endpoint. + */ + "update-environment-type-access": { + parameters: { + path: { + projectId: string; + environmentTypeId: string; + environmentTypeAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessPatch"]; + }; + }; + }; + /** + * Retrieve a list of a project's existing environments and the + * information associated with each environment. + */ + "list-projects-environments": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentCollection"]; + }; + }; + }; + }; + /** + * Create a new environment on a project and define the configuration + * information associated with the environment. + */ + "create-projects-environments": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentCreateInput"]; + }; + }; + }; + /** Retrieve the details of a single existing environment. */ + "get-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Environment"]; + }; + }; + }; + }; + /** Delete a specified environment. */ + "delete-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** Update the details of a single existing environment. */ + "update-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentPatch"]; + }; + }; + }; + /** + * Retrieve a list of objects specifying the users + * with access to an environment and those users' roles. + * This will be effectively listing the access for the environment **type** of the environment. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + "list-environment-access": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessCollection"]; + }; + }; + }; + }; + /** + * Add a user to an environment's access control list + * + * This will be effectively adding a user to the environment **type** access control list. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + "create-environment-access": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessCreateInput"]; + }; + }; + }; + /** + * Retrieve the details of a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively listing the access for the environment **type** of the environment. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + "get-environment-access": { + parameters: { + path: { + projectId: string; + environmentId: string; + environmentAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccess"]; + }; + }; + }; + }; + /** + * Remove a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively removing the user from the environment **type** control list, + * affecting the access to all environments of the same type. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + "delete-environment-access": { + parameters: { + path: { + projectId: string; + environmentId: string; + environmentAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update the role of a user from an environments's access control list + * using the `id` of the entry in the access control list. + * This will be effectively updating the user from the environment **type** control list, + * affecting the access to all environments of the same type. + * Please, use [Environment Type Access](#tag/Environment-Type-Access) instead. + */ + "update-environment-access": { + parameters: { + path: { + projectId: string; + environmentId: string; + environmentAccessId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentTypeAccessPatch"]; + }; + }; + }; + /** Set the specified environment's status to active */ + "activate-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Retrieve an environment's activity log. This returns a list of object + * with records of actions such as: + * + * - Commits being pushed to the repository + * - A new environment being branched out from the specified environment + * - A snapshot being created of the specified environment + * + * The object includes a timestamp of when the action occurred + * (`created_at`), when the action concluded (`updated_at`), + * the current `state` of the action, the action's completion + * percentage (`completion_percent`), and other related information in + * the `payload`. + * + * The contents of the `payload` varies based on the `type` of the + * activity. For example: + * + * - An `environment.branch` action's `payload` can contain objects + * representing the `parent` environment and the branching action's + * `outcome`. + * + * - An `environment.push` action's `payload` can contain objects + * representing the `environment`, the specific `commits` included in + * the push, and the `user` who pushed. + */ + "list-projects-environments-activities": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ActivityCollection"]; + }; + }; + }; + }; + /** + * Retrieve a single environment activity entry as specified by an + * `id` returned by the + * [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget) + * endpoint. See the documentation on that endpoint for details about + * the information this endpoint can return. + */ + "get-projects-environments-activities": { + parameters: { + path: { + projectId: string; + environmentId: string; + activityId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Activity"]; + }; + }; + }; + }; + /** + * Cancel a single activity as specified by an `id` returned by the + * [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget) + * endpoint. + * + * Please note that not all activities are cancelable. + */ + "action-projects-environments-activities-cancel": { + parameters: { + path: { + projectId: string; + environmentId: string; + activityId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Trigger a new snapshot of an environment to be created. See the + * [Snapshot and Restore](https://docs.platform.sh/administration/snapshot-and-restore.html) + * section of the documentation for more information. + */ + "backup-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentBackupInput"]; + }; + }; + }; + /** Retrieve a list of objects representing backups of this environment. */ + "list-projects-environments-backups": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["BackupCollection"]; + }; + }; + }; + }; + /** + * Get the details of a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + "get-projects-environments-backups": { + parameters: { + path: { + projectId: string; + environmentId: string; + backupId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Backup"]; + }; + }; + }; + }; + /** + * Delete a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + "delete-projects-environments-backups": { + parameters: { + path: { + projectId: string; + environmentId: string; + backupId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Restore a specific backup from an environment using the `id` + * of the entry retrieved by the + * [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget) + * endpoint. + */ + "restore-backup": { + parameters: { + path: { + projectId: string; + environmentId: string; + backupId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentRestoreInput"]; + }; + }; + }; + /** Create a new environment as a branch of the current environment. */ + "branch-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentBranchInput"]; + }; + }; + }; + /** + * Destroy all services and data running on this environment so that + * only the Git branch remains. The environment can be reactivated + * later at any time; reactivating an environment will sync data + * from the parent environment and redeploy. + * + * **NOTE: ALL DATA IN THIS ENVIRONMENT WILL BE IRREVOCABLY LOST** + */ + "deactivate-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Retrieve the read-only configuration of an environment's deployment. + * The returned information is everything required to + * recreate a project's current deployment. + * + * More specifically, the objects + * returned by this endpoint contain the configuration derived from the + * repository's YAML configuration files: `.platform.app.yaml`, + * `.platform/services.yaml`, and `.platform/routes.yaml`. + * + * Additionally, any values deriving from environment variables, the + * domains attached to a project, project access settings, etc. are + * included here. + * + * This endpoint currently returns a list containing a single deployment + * configuration with an `id` of `current`. This may be subject to change + * in the future. + */ + "list-projects-environments-deployments": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["DeploymentCollection"]; + }; + }; + }; + }; + /** + * Retrieve a single deployment configuration with an id of `current`. This may be subject to change in the future. + * Only `current` can be queried. + */ + "get-projects-environments-deployments": { + parameters: { + path: { + projectId: string; + environmentId: string; + deploymentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Deployment"]; + }; + }; + }; + }; + /** + * Retrieve a list of objects representing the user-specified domains + * associated with an environment. Note that this does *not* return the + * `.platformsh.site` subdomains, which are automatically assigned to + * the environment. + */ + "list-projects-environments-domains": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["DomainCollection"]; + }; + }; + }; + }; + /** + * Add a single domain to an environment. + * If the environment is not production, the `replacement_for` field + * is required, which binds a new domain to an existing one from a + * production environment. + * If the `ssl` field is left blank without an object containing + * a PEM-encoded SSL certificate, a certificate will + * [be provisioned for you via Let's Encrypt](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt). + */ + "create-projects-environments-domains": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DomainCreateInput"]; + }; + }; + }; + /** + * Retrieve information about a single user-specified domain + * associated with an environment. + */ + "get-projects-environments-domains": { + parameters: { + path: { + projectId: string; + environmentId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Domain"]; + }; + }; + }; + }; + /** Delete a single user-specified domain associated with an environment. */ + "delete-projects-environments-domains": { + parameters: { + path: { + projectId: string; + environmentId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update the information associated with a single user-specified + * domain associated with an environment. + */ + "update-projects-environments-domains": { + parameters: { + path: { + projectId: string; + environmentId: string; + domainId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DomainPatch"]; + }; + }; + }; + /** + * Initialize and configure a new environment with an existing repository. + * The payload is the url of a git repository with a profile name: + * + * ``` + * { + * "repository": "git@github.com:platformsh/a-project-template.git@master", + * "profile": "Example Project", + * "files": [ + * { + * "mode": 0600, + * "path": "config.json", + * "contents": "XXXXXXXX" + * } + * ] + * } + * ``` + * It can optionally carry additional files that will be committed to the + * repository, the POSIX file mode to set on each file, and the base64-encoded + * contents of each file. + * + * This endpoint can also add a second repository + * URL in the `config` parameter that will be added to the contents of the first. + * This allows you to put your application in one repository and the Platform.sh + * YAML configuration files in another. + */ + "initialize-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentInitializeInput"]; + }; + }; + }; + /** + * Merge an environment into its parent. This means that code changes + * from the branch environment will be merged into the parent branch, and + * the parent branch will be rebuilt and deployed with the new code changes, + * retaining the existing data in the parent environment. + */ + "merge-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** Trigger the redeployment sequence of an environment. */ + "redeploy-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Retrieve a list of objects containing route definitions for + * a specific environment. The definitions returned by this endpoint + * are those present in an environment's `.platform/routes.yaml` file. + */ + "list-projects-environments-routes": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["RouteCollection"]; + }; + }; + }; + }; + /** + * Add a new route to the specified environment. More information about + * how routes are defined can be found in the [Routes](https://docs.platform.sh/configuration/routes.html) + * section of the documentation. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + "create-projects-environments-routes": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RouteCreateInput"]; + }; + }; + }; + /** + * Get details of a route from an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + */ + "get-projects-environments-routes": { + parameters: { + path: { + projectId: string; + environmentId: string; + routeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Route"]; + }; + }; + }; + }; + /** + * Remove a route from an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + "delete-projects-environments-routes": { + parameters: { + path: { + projectId: string; + environmentId: string; + routeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update a route in an environment using the `id` of the entry + * retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget) + * endpoint. + * + * This endpoint modifies an environment's `.platform/routes.yaml` file. + * For routes to propagate to child environments, the child environments + * must be synchronized with their parent. + */ + "update-projects-environments-routes": { + parameters: { + path: { + projectId: string; + environmentId: string; + routeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoutePatch"]; + }; + }; + }; + /** + * This endpoint triggers a source code operation as defined in the `source.operations` + * key in a project's `.platform.app.yaml` configuration. More information + * on source code operations is + * [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html). + */ + "run-source-operation": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentSourceOperationInput"]; + }; + }; + }; + /** + * Lists all the source operations, defined in `.platform.app.yaml`, that are available in an environment. + * More information on source code operations is + * [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html). + */ + "list-projects-environments-source-operations": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentSourceOperationCollection"]; + }; + }; + }; + }; + /** + * This synchronizes the code and/or data of an environment with that of + * its parent, then redeploys the environment. Synchronization is only + * possible if a branch has no unmerged commits and it can be fast-forwarded. + * + * If data synchronization is specified, the data in the environment will + * be overwritten with that of its parent. + */ + "synchronize-environment": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentSynchronizeInput"]; + }; + }; + }; + /** + * Retrieve a list of objects representing the user-defined variables + * within an environment. + */ + "list-projects-environments-variables": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentVariableCollection"]; + }; + }; + }; + }; + /** + * Add a variable to an environment. The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * Additionally, the inheritability of an environment variable can be + * determined through the `is_inheritable` flag (default: true). + * See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables) + * section in our documentation for more information. + */ + "create-projects-environments-variables": { + parameters: { + path: { + projectId: string; + environmentId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentVariableCreateInput"]; + }; + }; + }; + /** Retrieve a single user-defined environment variable. */ + "get-projects-environments-variables": { + parameters: { + path: { + projectId: string; + environmentId: string; + variableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["EnvironmentVariable"]; + }; + }; + }; + }; + /** Delete a single user-defined environment variable. */ + "delete-projects-environments-variables": { + parameters: { + path: { + projectId: string; + environmentId: string; + variableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update a single user-defined environment variable. + * The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * Additionally, the inheritability of an environment variable can be + * determined through the `is_inheritable` flag (default: true). + * See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables) + * section in our documentation for more information. + */ + "update-projects-environments-variables": { + parameters: { + path: { + projectId: string; + environmentId: string; + variableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnvironmentVariablePatch"]; + }; + }; + }; + /** + * Retrieve, by hash, an object representing a blob in the repository + * backing a project. This endpoint allows direct read-only access + * to the contents of files in a repo. It returns the file in the + * `content` field of the response object, encoded according to the + * format in the `encoding` field, e.g. `base64`. + */ + "get-projects-git-blobs": { + parameters: { + path: { + projectId: string; + repositoryBlobId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Blob"]; + }; + }; + }; + }; + /** + * Retrieve, by hash, an object representing a commit in the repository backing + * a project. This endpoint functions similarly to `git cat-file -p `. + * The returned object contains the hash of the Git tree that it + * belongs to, as well as the ID of parent commits. + * + * The commit represented by a parent ID can be retrieved using this + * endpoint, while the tree state represented by this commit can + * be retrieved using the + * [Get a tree object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1trees~1%7BrepositoryTreeId%7D%2Fget) + * endpoint. + */ + "get-projects-git-commits": { + parameters: { + path: { + projectId: string; + repositoryCommitId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Commit"]; + }; + }; + }; + }; + /** + * Retrieve a list of `refs/*` in the repository backing a project. + * This endpoint functions similarly to `git show-ref`, with each + * returned object containing a `ref` field with the ref's name, + * and an object containing the associated commit ID. + * + * The returned commit ID can be used with the + * [Get a commit object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1commits~1%7BrepositoryCommitId%7D%2Fget) + * endpoint to retrieve information about that specific commit. + */ + "list-projects-git-refs": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["RefCollection"]; + }; + }; + }; + }; + /** + * Retrieve the details of a single `refs` object in the repository + * backing a project. This endpoint functions similarly to + * `git show-ref `, although the pattern must be a full ref `id`, + * rather than a matching pattern. + * + * *NOTE: The `{repositoryRefId}` must be properly escaped.* + * That is, the ref `refs/heads/master` is accessible via + * `/projects/{projectId}/git/refs/heads%2Fmaster`. + */ + "get-projects-git-refs": { + parameters: { + path: { + projectId: string; + repositoryRefId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Ref"]; + }; + }; + }; + }; + /** + * Retrieve, by hash, the tree state represented by a commit. + * The returned object's `tree` field contains a list of files and + * directories present in the tree. + * + * Directories in the tree can be recursively retrieved by this endpoint + * through their hashes. Files in the tree can be retrieved by the + * [Get a blob object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1blobs~1%7BrepositoryBlobId%7D%2Fget) + * endpoint. + */ + "get-projects-git-trees": { + parameters: { + path: { + projectId: string; + repositoryTreeId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Tree"]; + }; + }; + }; + }; + "list-projects-integrations": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["IntegrationCollection"]; + }; + }; + }; + }; + "create-projects-integrations": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationCreateInput"]; + }; + }; + }; + "get-projects-integrations": { + parameters: { + path: { + projectId: string; + integrationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["Integration"]; + }; + }; + }; + }; + "delete-projects-integrations": { + parameters: { + path: { + projectId: string; + integrationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + "update-projects-integrations": { + parameters: { + path: { + projectId: string; + integrationId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationPatch"]; + }; + }; + }; + /** Retrieve the global settings for a project. */ + "get-projects-settings": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectSettings"]; + }; + }; + }; + }; + /** Update one or more project-level settings. */ + "update-projects-settings": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectSettingsPatch"]; + }; + }; + }; + /** Output information for the project. */ + "get-projects-system": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["SystemInformation"]; + }; + }; + }; + }; + /** Force the Git server to restart. */ + "action-projects-system-restart": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Retrieve a list of objects representing the user-defined variables + * within a project. + */ + "list-projects-variables": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectVariableCollection"]; + }; + }; + }; + }; + /** + * Add a variable to a project. The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * See the [Variables](https://docs.platform.sh/development/variables.html#project-variables) + * section in our documentation for more information. + */ + "create-projects-variables": { + parameters: { + path: { + projectId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectVariableCreateInput"]; + }; + }; + }; + /** Retrieve a single user-defined project variable. */ + "get-projects-variables": { + parameters: { + path: { + projectId: string; + projectVariableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["ProjectVariable"]; + }; + }; + }; + }; + /** Delete a single user-defined project variable. */ + "delete-projects-variables": { + parameters: { + path: { + projectId: string; + projectVariableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + }; + /** + * Update a single user-defined project variable. + * The `value` can be either a string or a JSON + * object (default: string), as specified by the `is_json` boolean flag. + * See the [Variables](https://docs.platform.sh/development/variables.html#project-variables) + * section in our documentation for more information. + */ + "update-projects-variables": { + parameters: { + path: { + projectId: string; + projectVariableId: string; + }; + }; + responses: { + default: { + content: { + "application/json": components["schemas"]["AcceptedResponse"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectVariablePatch"]; + }; + }; + }; + /** Retrieves a list of organizations referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the _links object with a key like ref:organizations:0. */ + "list-referenced-orgs": { + parameters: { + query: { + /** The list of comma-separated organization IDs generated by a trusted service. */ + in: string; + /** The signature of this request generated by a trusted service. */ + sig: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + [key: string]: components["schemas"]["OrganizationReference"]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves organizations that the specified user is a member of. */ + "list-user-orgs": { + parameters: { + path: { + /** The ID of the user. */ + user_id: components["parameters"]["UserID"]; + }; + query: { + /** Allows filtering by `id` using one or more operators. */ + "filter[id]"?: components["schemas"]["StringFilter"]; + /** Allows filtering by `updated_at` using one or more operators. */ + "filter[updated_at]"?: components["schemas"]["DateTimeFilter"]; + /** Shows 50 organizations before the given cursor. */ + "page[before]"?: string; + /** Shows 50 organizations after the given cursor. */ + "page[after]"?: string; + /** + * Allows sorting by a single field.
+ * Use a dash ("-") to sort descending.
+ * Supported fields: `name`, `created_at`, `updated_at`. + */ + sort?: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Organization"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Non-admin users will only see organizations they are members of. */ + "list-orgs": { + parameters: { + query: { + /** Allows filtering by `id` using one or more operators. */ + "filter[id]"?: components["schemas"]["StringFilter"]; + /** Allows filtering by `owner_id` using one or more operators. */ + "filter[owner_id]"?: components["schemas"]["StringFilter"]; + /** Allows filtering by `name` using one or more operators. */ + "filter[name]"?: components["schemas"]["StringFilter"]; + /** Allows filtering by `label` using one or more operators. */ + "filter[label]"?: components["schemas"]["StringFilter"]; + /** Allows filtering by `updated_at` using one or more operators. */ + "filter[updated_at]"?: components["schemas"]["DateTimeFilter"]; + /** Shows 50 organizations before the given cursor. */ + "page[before]"?: string; + /** Shows 50 organizations after the given cursor. */ + "page[after]"?: string; + /** + * Allows sorting by a single field.
+ * Use a dash ("-") to sort descending.
+ * Supported fields: `name`, `created_at`, `updated_at`. + */ + sort?: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Organization"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates a new organization. */ + "create-org": { + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * Format: uuid + * @description ID of the owner. + */ + owner_id?: string; + /** @description A unique machine name representing the organization. */ + name: string; + /** @description The human-readable label of the organization. */ + label: string; + /** @description The organization country (2-letter country code). */ + country?: string; + }; + }; + }; + }; + /** Retrieves the specified organization. */ + "get-org": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Deletes the specified organization. */ + "delete-org": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Updates the specified organization. */ + "update-org": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A unique machine name representing the organization. */ + name?: string; + /** @description The human-readable label of the organization. */ + label?: string; + /** @description The organization country (2-letter country code). */ + country?: string; + }; + }; + }; + }; + /** Accessible to organization owners and members with the "manage members" permission. */ + "list-org-members": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** Shows 50 members before the given cursor. */ + "page[before]"?: string; + /** Shows 50 members after the given cursor. */ + "page[after]"?: string; + /** + * Allows sorting by a single field.
+ * Use a dash ("-") to sort descending.
+ * Supported fields: `created_at`, `updated_at`. + */ + sort?: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["OrganizationMember"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates a new organization member. */ + "create-org-member": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["OrganizationMember"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * Format: uuid + * @description ID of the user. + */ + user_id: string; + permissions?: components["schemas"]["Permissions"]; + }; + }; + }; + }; + /** Retrieves the specified organization member. */ + "get-org-member": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + /** The ID of the member. */ + member_id: components["parameters"]["MemberID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["OrganizationMember"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Deletes the specified organization member. */ + "delete-org-member": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the member. */ + member_id: components["parameters"]["MemberID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Updates the specified organization member. */ + "update-org-member": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the member. */ + member_id: components["parameters"]["MemberID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + permissions?: components["schemas"]["Permissions"]; + }; + }; + }; + }; + /** Retrieves the address for the specified organization. */ + "get-org-address": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Updates the address for the specified organization. */ + "update-org-address": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Address"]; + }; + }; + }; + /** Retrieves a list of invoices for the specified organization. */ + "list-org-invoices": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** The status of the invoice. */ + "filter[status]"?: components["parameters"]["filter_invoice_status"]; + /** The invoice type. Use invoice for standard invoices, credit_memo for refund/credit invoices. */ + "filter[type]"?: components["parameters"]["filter_invoice_type"]; + /** The order id of Invoice. */ + "filter[order_id]"?: components["parameters"]["filter_order_id"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Invoice"][]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves an invoice for the specified organization. */ + "get-org-invoice": { + parameters: { + path: { + /** The ID of the invoice. */ + invoice_id: components["parameters"]["InvoiceID"]; + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Invoice"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves the profile for the specified organization. */ + "get-org-profile": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Profile"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Updates the profile for the specified organization. */ + "update-org-profile": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Profile"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The URL of a catalog file which overrides the default. */ + default_catalog?: string; + /** + * Format: uri + * @description The URL of an organization-wide project options file. + */ + project_options_url?: string; + /** + * Format: email + * @description The e-mail address of a contact to whom security notices will be sent. + */ + security_contact?: string; + /** @description The company name. */ + company_name?: string; + /** @description The VAT number of the company. */ + vat_number?: string; + /** + * Format: email + * @description The e-mail address of a contact to whom billing notices will be sent. + */ + billing_contact?: string; + }; + }; + }; + }; + /** Retrieves orders for the specified organization. */ + "list-org-orders": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** The status of the order. */ + "filter[status]"?: components["parameters"]["filter_order_status"]; + /** The total of the order. */ + "filter[total]"?: components["parameters"]["filter_order_total"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Order"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves an order for the specified organization. */ + "get-org-order": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + /** The ID of the order. */ + order_id: components["parameters"]["OrderID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Order"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves plan records for the specified organization. */ + "list-org-plan-records": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** The ID of the subscription */ + "filter[subscription_id]"?: components["parameters"]["filter_subscription_id"]; + /** The plan type of the subscription. */ + "filter[plan]"?: components["parameters"]["filter_subscription_plan"]; + /** The status of the plan record. */ + "filter[status]"?: components["parameters"]["record_status"]; + /** The start of the observation period for the record. E.g. filter[start]=2018-01-01 will display all records that were active (i.e. did not end) on 2018-01-01 */ + "filter[start]"?: components["parameters"]["record_start"]; + /** The end of the observation period for the record. E.g. filter[end]=2018-01-01 will display all records that were active on (i.e. they started before) 2018-01-01 */ + "filter[end]"?: components["parameters"]["record_end"]; + /** The record's start timestamp. You can use this filter to list records started after, or before a certain time. E.g. filter[started_at][value]=2020-01-01&filter[started_at][operator]=> */ + "filter[started_at]"?: components["parameters"]["record_started_at"]; + /** The record's end timestamp. You can use this filter to list records ended after, or before a certain time. E.g. filter[ended_at][value]=2020-01-01&filter[ended_at][operator]=> */ + "filter[ended_at]"?: components["parameters"]["record_ended_at"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["PlanRecords"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves usage records for the specified organization. */ + "list-org-usage-records": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** The ID of the subscription */ + "filter[subscription_id]"?: components["parameters"]["filter_subscription_id"]; + /** Filter records by the type of usage. */ + "filter[usage_group]"?: components["parameters"]["record_usage_group"]; + /** The start of the observation period for the record. E.g. filter[start]=2018-01-01 will display all records that were active (i.e. did not end) on 2018-01-01 */ + "filter[start]"?: components["parameters"]["record_start"]; + /** The record's start timestamp. You can use this filter to list records started after, or before a certain time. E.g. filter[started_at][value]=2020-01-01&filter[started_at][operator]=> */ + "filter[started_at]"?: components["parameters"]["record_started_at"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Usage"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves subscriptions for the specified organization. */ + "list-org-subscriptions": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** The status of the subscription. */ + "filter[status]"?: components["parameters"]["subscription_status"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Subscription"][]; + _links?: components["schemas"]["ListLinks"]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Creates a subscription for the specified organization. */ + "create-org-subscription": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** Created */ + 201: { + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @default null */ + plan?: components["schemas"]["Plan"]; + /** @description The machine name of the region where the project is located. Cannot be changed after project creation. */ + project_region: string; + /** @description The name given to the project. Appears as the title in the UI. */ + project_title?: string; + /** @description The URL of the project options file. */ + options_url?: string; + /** @description The default Git branch name for the project. */ + default_branch?: string; + /** @description The maximum number of active environments on the project. */ + environments?: number; + /** @description The total storage available to each environment, in MiB. Only multiples of 1024 are accepted as legal values. */ + storage?: number; + }; + }; + }; + }; + /** Retrieves a subscription for the specified organization. */ + "get-org-subscription": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + /** The ID of the subscription. */ + subscription_id: components["parameters"]["SubscriptionID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Deletes a subscription for the specified organization. */ + "delete-org-subscription": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the subscription. */ + subscription_id: components["parameters"]["SubscriptionID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Updates a subscription for the specified organization. */ + "update-org-subscription": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the subscription. */ + subscription_id: components["parameters"]["SubscriptionID"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + /** Bad Request */ + 400: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + plan: components["schemas"]["Plan"]; + /** @description The maximum number of environments which can be provisioned on the project. */ + environments?: number; + /** @description The total storage available to each environment, in MiB. */ + storage?: number; + /** @description The development environment plan. */ + big_dev?: string; + /** @description The backups plan. */ + backups?: string; + }; + }; + }; + }; + "estimate-new-org-subscription": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + query: { + /** The plan type of the subscription. */ + plan: string; + /** The maximum number of environments which can be provisioned on the project. */ + environments: number; + /** The total storage available to each environment, in MiB. */ + storage: number; + /** The number of user licenses. */ + user_licenses: number; + /** The format of the estimation output. */ + format?: "formatted" | "complex"; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["EstimationObject"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + "estimate-org-subscription": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + /** The ID of the subscription. */ + subscription_id: components["parameters"]["SubscriptionID"]; + }; + query: { + /** The plan type of the subscription. */ + plan: string; + /** The maximum number of environments which can be provisioned on the project. */ + environments?: number; + /** The total storage available to each environment, in MiB. */ + storage?: number; + /** The number of user licenses. */ + user_licenses?: number; + /** The format of the estimation output. */ + format?: "formatted" | "complex"; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["EstimationObject"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Retrieves vouchers for the specified organization. */ + "list-org-vouchers": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": components["schemas"]["Vouchers"]; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; + /** Applies a voucher for the specified organization, and refreshes the currently open order. */ + "apply-org-voucher": { + parameters: { + path: { + /** The ID of the organization. */ + organization_id: components["parameters"]["OrganizationID"]; + }; + }; + responses: { + /** No Content */ + 204: never; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The voucher code. */ + code: string; + }; + }; + }; + }; + /** Retrieves the list of available regions for the specified organization. */ + "list-org-regions": { + parameters: { + path: { + /** + * The ID of the organization.
+ * Prefix with name= to retrieve the organization by name instead. + */ + organization_id: components["parameters"]["OrganizationIDName"]; + }; + query: { + /** Geographical zone of the region. */ + "filter[zone]"?: components["parameters"]["region_zone"]; + /** Value 0 displays only disabled regions. Value 1 displays only enabled ones. */ + "filter[available]"?: components["parameters"]["region_available"]; + /** Value 0 displays only public regions. Value 1 displays only private ones. */ + "filter[private]"?: components["parameters"]["region_private"]; + /** Page to be displayed. Defaults to 1. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items?: components["schemas"]["Region"][]; + }; + }; + }; + /** Forbidden */ + 403: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + /** Not Found */ + 404: { + content: { + "application/problem+json": components["schemas"]["Error"]; + }; + }; + }; + }; +} + +export interface external {}