openapi: 3.2.0 info: title: Webscale Tasks API version: '2026.273' description: The Webscale APIs allow programmatic access to the Webscale services. servers: - url: https://api.webscale.com/v2 security: - access_key: [] tags: - name: Tasks x-tag-expanded: false paths: /tasks: get: summary: Read task collection description: Returns all tasks that the caller is authorized to view. tags: - Tasks parameters: - $ref: '#/components/parameters/from' schema: {} - $ref: '#/components/parameters/to' schema: {} - $ref: '#/components/parameters/start' schema: {} - $ref: '#/components/parameters/limit' schema: {} - $ref: '#/components/parameters/order' schema: {} responses: '200': description: The call was successful. content: application/json: schema: type: array items: $ref: '#/components/schemas/Task' operationId: getTasks x-operation-id-source: derived post: summary: Create a task description: This API will create a task that may be long running and may be targeted attempt a specific resource. If the task is long running a 200 code is returned. Otherwise a 201 code with be returned. The task can be fetched throughout its lifecycle and used to track the progress and completion of the task. parameters: [] tags: - Tasks responses: '200': description: The task has been created and is complete. content: application/json: schema: $ref: '#/components/schemas/Task' '201': description: The task has been created and has not yet completed. content: application/json: schema: $ref: '#/components/schemas/Task' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TaskPost' description: 'The task definition. The target must be an href for the resource that the task is to be performed on. For example: Starting an application. type is ''start'' and endpoint is something like ''/v2/applications/abcxyz''.' operationId: postTasks x-operation-id-source: derived /tasks/{id}: get: summary: Read a task description: Retrieve a task resource. parameters: - name: id in: path required: true schema: type: string description: task id. tags: - Tasks responses: '200': description: The call was successful. content: application/json: schema: $ref: '#/components/schemas/Task' operationId: getTasksById x-operation-id-source: derived /tasks/{id}/logs: get: summary: Read task logs description: Retrieve the logs recorded for a task parameters: - name: id in: path required: true schema: type: string description: task id. - $ref: '#/components/parameters/from' schema: {} - $ref: '#/components/parameters/to' schema: {} - $ref: '#/components/parameters/limit' schema: {} tags: - Tasks responses: '200': description: The call was successful. content: application/json: schema: type: array items: $ref: '#/components/schemas/ProcessLog' operationId: getTasksByIdLogs x-operation-id-source: derived components: schemas: InstanceTemplate: type: string pattern: ^/v2/services/[a-z0-9]+(/regions/[a-zA-Z0-9-_.]+)?/instance-templates/[a-z0-9-_]+$ description: The endpoint resource identifier for the instance template. Header: type: object required: - name - value properties: name: description: The name of the header to be set. type: string pattern: ^[!#$%&'*+\-.0-9A-Z^_`a-z|~]{1,100}$ value: description: The value for the specified header. type: string pattern: ^[!"#$%&'()*+,\-./0-9:;<=>?@A-Z\[\\\]^_`a-z{|}~ ]{0,8190}$ ScalingSeriesName: type: string description: Name identifying the scaling condition type. enum: - cpu_percent - iowait_percent - kilobytes_per_second - loadavg_norm - memory_used_percent - requests_per_second TaskGetRequestAddress: description: Gets the public IP address of the requesting user agent. type: object required: - type properties: type: type: string enum: - get-request-address additionalProperties: false ClusterPatch: type: object allOf: - $ref: '#/components/schemas/ClusterConfiguration' ScalingCondition: type: object required: - series_name - operator - value - duration - display_unit properties: series_name: $ref: '#/components/schemas/ScalingSeriesName' description: Parameter to monitor to determine scaling in or out of servers. operator: $ref: '#/components/schemas/ScalingOperator' description: Operator to determine scaling condition. value: type: number description: Threshold value to trigger scaling in or out of servers. duration: $ref: '#/components/schemas/Duration' description: Duration for which the scaling condition has to be true for the scaling to kick in. display_unit: $ref: '#/components/schemas/DurationDisplayUnit' Blueprint: type: object description: 'The endpoint resource reference to the blueprint of the servers. ' properties: docker_registry_service: type: string pattern: ^/v2/services/[a-z0-9]+$ description: 'A reference to a docker registry service from which images are to be retrieved. ' files: type: array description: A set of files to be made available on servers created with this blueprint. items: $ref: '#/components/schemas/MetadataFileEntry' helm_chart_reference: $ref: '#/components/schemas/FileHref' description: 'A reference to a file object containing a Helm chart. ' helm_chart_values: type: string description: 'A Base64 encoded string of the YAML values to be passed into the Helm chart on creation. ' helm_release_name: type: string description: 'The name of the Helm release to install. Each deployment installs its own copy of the release into its own namespace. ' minLength: 1 maxLength: 53 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ helm_service_name: type: string description: 'The name of the Kubernetes Service in the release that receives request traffic. It has to be a NodePort Service exposing exactly one port, and its node addresses become the origins for the cluster. ' minLength: 1 maxLength: 63 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ iam_instance_profile: type: string description: 'An Amazon Resource Name (ARN) specifying an IAM instance profile. This can be used for blueprints that use an EC2 service provider. It is ignored otherwise. ' identity: $ref: '#/components/schemas/IdentityConfiguration' description: Azure identity to be assigned to cluster servers. image: $ref: '#/components/schemas/ProviderResourceHref' description: 'Object endpoint resource reference for the image being specified. ' instance_template: $ref: '#/components/schemas/InstanceTemplate' description: 'Object endpoint resource reference for instance template being specified. ' instance_type: $ref: '#/components/schemas/ProviderResourceHref' description: 'Object endpoint resource reference for the instance type being specified. ' logs: type: object description: 'Configuration that specifies which logs are collected from instances using the Webscale Monitoring Agent (WMA). ' properties: applications: type: array items: $ref: '#/components/schemas/BlueprintLogsApplication' metadata: type: array description: A set of key/value pairs that will be provided to servers created with this blueprint. Server blueprint metadata overrides the cluster metadata on a key-by-key basis. items: $ref: '#/components/schemas/MetadataEntry' name: type: string description: 'The name of the blueprint used for managing deployments. Required for Kubernetes blueprints and not accepted on VM blueprints. ' enum: - helm networks: type: array description: 'List of network or subnet endpoint resource references to associate the server with. Network availability may be limited to specific zones depending on the cloud provider. ' items: $ref: '#/components/schemas/ProviderResourceHref' network_tags: type: array description: List of network tags to associate with the server. Only applicable for Google provider. items: type: string placement: $ref: '#/components/schemas/ProviderResourceHref' description: 'Endpoint resource reference specifying placement for resources created using this blueprint. ' provider: description: 'Provider used to create the blueprint. ' $ref: '#/components/schemas/Provider' security_groups: type: array description: List of security group endpoint resource references to associate with the server. Only applicable for AWS provider. items: $ref: '#/components/schemas/SecurityGroupHref' service: type: string pattern: ^/v2/services/[a-z0-9]+$ description: A reference to a service used to create instances from this blueprint. storage_account: $ref: '#/components/schemas/ProviderResourceHref' description: Storage account reference. zone: $ref: '#/components/schemas/ProviderResourceHref' description: 'Deprecated. Must use placement instead of zones. Object endpoint resource reference for the zone being specified. ' additionalProperties: false EventSeverity: type: string description: 'The severity of the event. There are three levels: info is informational and no action is needed, warning may indicate that an error will occur if action is not taken, severe is critical and requires immediate attention (e.g. the application is down).' enum: - info - severe - warning Hostname: type: string pattern: ^([a-zA-Z0-9][a-zA-Z0-9\-_]*\.){1,}[a-zA-Z0-9-]{2,}$ format: hostname AccountLogRetention: type: object additionalProperties: false required: - type properties: type: type: string description: Type of log retention enum: - events online_days: type: integer description: Number of online days minimum: 1 archive_days: type: integer description: Number of archive days minimum: 1 online_space_allowance: type: integer description: Allowance for online space minimum: 1 archive_space_allowance: type: integer description: Allowance for archive space minimum: 1 TaskCancelBuild: description: 'Cancels an in-progress build. ' additionalProperties: false required: - type - target properties: type: type: string enum: - cancel-build target: type: string description: A reference to the task executing the build to be canceled. pattern: ^/v2/tasks/[a-z0-9]+$ TaskEnterMaintenance: description: Starts application maintenance type: object required: - type - target properties: type: type: string enum: - enter_maintenance target: description: Reference to the application for which maintenance is to be started anyOf: - type: string description: An application href pattern: ^/v2/applications/[a-z0-9]+$ parameters: type: object description: Optional parameters properties: maximum_duration: type: integer additionalProperties: false additionalProperties: false Name: type: string minLength: 1 AccountHref: type: string description: A reference to an account pattern: ^/v2/accounts/[a-z0-9]+$ Label: type: string description: A custom label starting with a lowercase letter following by numbers and lowercase letters. Dashes and underscores are accepted if they are followed by lowercase letters or numbers. pattern: ^[a-z][0-9a-z]*([-_]+[0-9a-z]+)*$ ProviderHref: type: string pattern: ^/v2/providers/[a-z0-9]+$ description: Resource identifier for the provider, must be a URL encoded string. TaskBuildImage: description: 'Build an image using a specified builder. ' additionalProperties: false required: - type - target properties: type: type: string enum: - build-image target: type: string description: A reference to a builder for building a image. pattern: ^/v2/builders/[a-z0-9]+$ parameters: properties: ref: type: string description: 'A repository branch name or ref (refs/heads/name), tag name or ref (i.e refs/tags/name), or commit id ' image_tags: type: array description: 'Additional tags to attach to the built image. Tags specified here will be in addition to any tags configured on the builder and any tags associated with the commit being built. ' items: type: string maxLength: 128 additionalProperties: false FileHref: type: string pattern: ^/v2/files/[a-z0-9]+$ description: Endpoint resource reference to a file. TagName: description: Name of different tags. type: string pattern: ^[!"#$%&'()*+,\-./0-9:;<=>?@A-Z\[\\\]^_`a-z{|}~ ]{0,8190}$ minLength: 1 maxLength: 200 AccountState: type: object properties: marketing_banners: type: array description: The marketing banners awaiting resolution by the account owner. additionalProperties: false TaskExitMaintenance: description: Exits application from maintenance type: object required: - type - target properties: type: type: string enum: - exit_maintenance target: description: Reference to the application for which maintenance is to be stopped anyOf: - type: string description: A resource reference pattern: ^/v2/applications/[a-z0-9]+$ parameters: type: object additionalProperties: false additionalProperties: false Duration: $ref: '#/components/schemas/NonNegativeInteger' description: Duration in seconds, no fractional values. SearchResult: description: Results of a search task properties: matches: type: array items: description: A matched object properties: account: description: An account object that contains a href and all account attributes that were searched $ref: '#/components/schemas/Account' subject: type: object description: A matched object containing at a minimum an "href" attribute and any attributes that were searched TaskGenerateOriginCertificate: description: 'Generate a certificate issued by the certificate authority belonging to the current account. An origin certificate is trusted by infrastructure created within the same account that issued it. ' type: object required: - type - parameters properties: type: type: string enum: - generate-origin-certificate target: description: 'Optional reference to an application from which hostnames can be derived. ' $ref: '#/components/schemas/ApplicationHref' parameters: type: object description: Required parameters required: - key properties: key: description: A PEM-encoded RSA key. type: string hostnames: description: 'A set of hostnames to be included in a resulting certificate as `DNS:`-prefixed subject alternative names. This can be omitted if `target` is provided. ' type: array items: type: string pattern: ^([a-zA-Z0-9_][a-zA-Z0-9\-_]{0,62}\.){1,}[a-zA-Z0-9_][a-zA-Z0-9\-_]{1,62}$ minItems: 1 uniqueItems: true expiry: $ref: '#/components/schemas/Timestamp' description: The time at which the certificate expires additionalProperties: false additionalProperties: false DurationDisplayUnit: type: string description: Unit to use for displaying the time duration specified. enum: - seconds - minutes - hours BlueprintLogStreamFilePath: type: string description: 'An absolute file path to collect logs from. Can have a wildcard match with an asterisk for the file name but not directory name. ' pattern: ^/.*[^/]$ Provider: type: object properties: created: $ref: '#/components/schemas/Timestamp' description: The provider was created at this time href: $ref: '#/components/schemas/ProviderHref' description: The endpoint for the provider resource name: $ref: '#/components/schemas/Name' description: Name given to the cloud provider type: type: string enum: - aws - azure - cloudsigma - google description: Type of the cloud provider. links: $ref: '#/components/schemas/ProviderAttributes' TaskCreateDeployment: description: 'Create a new deployment for a specified cluster, optionally updating the cluster before deploying. ' additionalProperties: false required: - type - target properties: type: type: string enum: - create-deployment target: type: string description: A reference to a cluster for which a deployment is created. pattern: ^/v2/clusters/[a-z0-9]+$ parameters: description: Optional parameters properties: patch: description: 'A patch to be applied to the target cluster before creating a deployment. ' $ref: '#/components/schemas/ClusterPatch' hooks: description: 'A set of hook commands to run during a deployment. ' type: array items: properties: id: type: string enum: - started - verified command: type: string enter_maintenance: description: 'When true, applications that use this cluster will be placed in maintenance mode during a deployment. ' type: boolean default: false pause_in_verify: description: 'When true, the deployment will pause after automated verification and remain in a verifying state until released with a resume-deployment task or canceled with cancel-deployment task. ' type: boolean default: false additionalProperties: false ProviderResourceHref: type: string pattern: ^(/v2/(providers|services)/[a-z0-9]+)(.*) description: Resource href that includes the Webscale provider identifier. TaskCancelDeployment: description: 'Cancel a pending deployment for a specified cluster. ' additionalProperties: false required: - type - target properties: type: type: string enum: - cancel-deployment target: type: string description: A reference to a cluster for which a deployment is to be canceled. pattern: ^/v2/clusters/[a-z0-9]+$ TaskResumeDeployment: description: 'Resume a paused deployment for a specified cluster. ' additionalProperties: false required: - type - target properties: type: type: string enum: - resume-deployment target: type: string description: A reference to a cluster for which a deployment is to be resumed. pattern: ^/v2/clusters/[a-z0-9]+$ ScalingOperator: type: string description: Operator to determine scaling condition. enum: - has_been_greater_than - will_be_greater_than - has_been_less_than - will_be_less_than MetadataFileEntry: type: object description: A file to be created on newly created servers. properties: file: type: - string - 'null' pattern: ^/v2/files/.*$ description: A reference to a file object. content: type: - string - 'null' description: 'Base64-encoded content to be stored at the specified path on created servers. ' path: type: string description: The absolute path where the file is made available on new servers. pattern: ^/[^\0]*[^/]$ additionalProperties: false TaskInvalidateCache: description: 'Invalidate cached responses for given application. Entries are invalidated in all caches used by the application as specified by the parameters. If neither URLs nor tags are given then the entire cache is invalidated. Specifying both tags and URLs is not expected and URLs are ignored when tags are given. An existing invalidation task may be re-used for the current invalidation to avoid an excess of tasks for frequent invalidations. Logs in a returned task will record the activity of each distinct invalidation. ' type: object required: - type - target - parameters properties: type: type: string enum: - invalidate-cache target: description: 'A reference to an application for which the cache is to bw invalidated. ' anyOf: - type: string description: An application reference parameters: type: object properties: urls: type: array description: "A non-empty collection of URL patterns to be invalidated. A URL\npattern is of the general form:\n\n ```\n [scheme://][hostname][path[query]]\n ```\n\nThe scheme may be one of `http`, `https`, or `*`. The hostname, path,\nand query may contain wildcards anywhere. A path pattern must begin\nwith `/`. A query pattern must begin with `?`.\n\nA minimal pattern `*` (all hostnames) will invalidate all cache\nentries.\n\nIf a query pattern is explicitly specified (e.g. `?*` to match all\nqueries), only entries with a query will be invalidated. Entries\nwithout a query are not invalidated unless affected by scope\nexpansion.\n\nOnly US-ASCII characters may be included in an invalidation URL\nwithout being percent-encoded. Unsafe characters as defined by\n[RFC 1738](https://datatracker.ietf.org/doc/html/rfc1738) must also be\npercent-encoded.\n\n### Scope expansion\n\nNot every cache to be invalidated supports fine-grained addressability\nand so the scope of an invalidation may be larger than what is\nspecified, but the specified scope will be invalidated in all caches.\n\n- **Site Cache:** Supports invalidating only entries that match the\n pattern exactly.\n- **VelocityEDGE:** Supports invalidating only entries that match the\n pattern exactly\n- **CloudFront:** Supports invalidations only by path and\n query, and then only with a single wildcard at the end. For example,\n an invalidation pattern `https://www.example.com/images/*/xyz.jpg*`\n will be presented to CloudFront as `/images/*`, invaliding all\n images across all hostnames.\n" items: type: string pattern: ^[!$%&'*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]*$ minItems: 1 minLength: 1 maxLength: 1000 tags: description: 'A non-empty collection of tags within site cache that are to be invalidated. ' type: array items: $ref: '#/components/schemas/TagName' minItems: 1 additionalProperties: false additionalProperties: false Task: type: object properties: href: type: string description: A reference to the task type: type: string description: The type of task target: type: string description: An object on which a referencing task operates parameters: type: object description: The parameters used as input to a task created: type: string format: date-time description: Time that the task was created. started: type: string format: date-time description: Time that the task was started. This field will be null if the task has not started. completed: type: string format: date-time description: Time at which processing for a task completed, or null if not yet completed. updated: type: string format: date-time description: Time at which the task was last updated. state: type: string description: The current state of the task. success and failed are final states. enum: - pending - running - success - failed description: type: string description: A description of the task message: type: string description: This field may contain a message regarding the current state of the task or it may be null. result: description: The result of a task. Type is an object dependent on the task. Will not be set for tasks that do not compute results. anyOf: - type: object - $ref: '#/components/schemas/SearchResult' Account: type: object allOf: - $ref: '#/components/schemas/AccountIdentity' - $ref: '#/components/schemas/AccountConfiguration' - $ref: '#/components/schemas/AccountState' additionalProperties: false TaskPrepareForDownload: description: 'Prepares an archived log for download. Logs that are archived are typically placed on storage that prevents them from being immediately available. The archived logs API can be used to download them, but will fail when they are not ready. When an instance of this task completes execution, the referenced log will be available for download. ' additionalProperties: false required: - type - parameters properties: type: type: string enum: - prepare-for-download parameters: additionalProperties: false description: Required parameters required: - reference - from - to properties: reference: type: string description: The archived-logs reference. pattern: ^/v2/archived-logs/.+$ from: description: The start of when to prepare files for download. Must be An hourly boundary timestamp. $ref: '#/components/schemas/Timestamp' to: description: The end of when to prepare files for download. Must be on an hourly boundary. $ref: '#/components/schemas/Timestamp' retention: description: 'The requested number of days the retrieved logs will remain available for download after this task completes. Though the system will attempt to satisfy the requested time, depending the volume of available logs may affect the ability of the system to fulfill the request. ' type: integer maximum: 30 minimum: 3 restore_type: type: string description: 'The urgency of the request. | Value | Typical time until ready | | ----- | ------------------------ | | bulk | Same day | | standard | Several hours | | expedited | Less than one hour | ' enum: - bulk - standard - expedited Check: type: object required: - url properties: url: description: URL to perform server verification on. type: string format: uri allowed_status_code: description: Regular expression to check the status code for responses to verification requests, when it is not satisfied the check will be deemed as a failure. Defaults to `^[23]` type: string format: regex default: ^[23] body: description: Request body which needs to be sent with verification request. Defaults to empty string. type: string headers: description: Array of headers that needs to be included in the verification request. Defaults to no headers. type: array items: $ref: '#/components/schemas/Header' permitted_redirect_hosts: description: A list of host names to follow when redirect responses are received during verification. Defaults to empty list. type: array items: $ref: '#/components/schemas/Hostname' default: [] prohibit_content: description: A regular expression applied on the response body that if matched fails the check. Defaults to no regular expression. type: string format: regex request_method: description: HTTP request method to use when sending verification requests. Defaults to 'GET' type: string pattern: ^(GET|HEAD|POST|PUT|PATCH|DELETE)$ default: GET require_content: description: A regular expression applied on the response body that must match for the check to succeed. Defaults to no regular expression. type: string format: regex timeout: description: Number of seconds to wait for the response from server. Defaults to 30 seconds. type: integer default: 30 verify_certificates: description: Flag when set to true directs the check to verify the validity of the offered certificates. Defaults to true. type: boolean default: true SecurityGroupHref: type: string pattern: ^/v2/(providers|services)/[a-z0-9]+((/regions/[a-zA-Z0-9-_.]+)|(/resource-groups/[a-zA-Z0-9-_./]+))?/security-groups/[a-zA-Z0-9-_]+$ description: The endpoint resource identifier for the security group, must be a URL encoded string. BlueprintLogStream: type: object description: 'A log stream configuration for use with Webscale Monitoring Agent. ' required: - file_paths - name properties: file_paths: type: array description: The file paths to collect logs from. items: $ref: '#/components/schemas/BlueprintLogStreamFilePath' multiline_start_regex: type: string description: 'The regex that defines the start of a log line. The log lines after a regex match will be sent as a single log entry until the next match is found. ' name: type: string description: 'An arbitrary name allowing for logs to be identified by their source or purpose. ' filter_regex: type: - string - 'null' description: 'A regular expression to match against log lines. When provided, only log lines that match the regular expression are captured. Log lines that do not match the regular expression are excluded. ' filters: type: - array - 'null' description: 'A list of substrings to match against log lines. When provided, only log lines that contain at least one of the specified substrings are captured. Log lines that do not contain any of these substrings are excluded. ' items: type: string additionalProperties: false ClusterAccess: description: 'Describes a method for accessing a service deployment. ' type: object required: - hostname properties: hostname: description: 'A hostname to which a service deployment responds on HTTP or HTTPS. ' $ref: '#/components/schemas/Hostname' AccountIdentity: type: object required: - href - id properties: href: $ref: '#/components/schemas/AccountHref' marketing_banners: type: array description: The marketing banners awaiting selection from the account owner. additionalProperties: false MetadataEntry: type: object description: A key/value pair to be made available on servers made with this metadata. properties: key: type: string description: A key name. value: type: string description: A value associated with the given key. additionalProperties: false BlueprintLogsApplication: type: object description: 'The application logs config object to specify which cluster logs are sent to custom logs. ' required: - href - streams properties: href: $ref: '#/components/schemas/ApplicationHref' streams: type: array description: Streams to be collected for an application. items: $ref: '#/components/schemas/BlueprintLogStream' additionalProperties: false TaskRunAction: description: Runs the target application type: object required: - type - target - parameters properties: type: type: string enum: - run-action target: description: A reference to an application for which the action is run anyOf: - type: string description: A resource reference pattern: ^/v2/applications/[a-z0-9]+$ parameters: type: object required: - id description: Required parameters properties: id: type: string description: The identifier of the action to run additionalProperties: false additionalProperties: false ProviderAttributes: type: object description: Provider attributes that represent cloud provider attributes and may be queried via the API. ApplicationHref: type: string pattern: ^/v2/applications/[a-z0-9]+$ description: The endpoint for the application resource. ProcessLog: type: object properties: process_id: type: string description: The id of the process running the task thread_id: type: string description: The id of the thread running the task activity: type: string description: The activity that generated this log message created: type: string format: date-time description: Time that the log message was created severity: $ref: '#/components/schemas/EventSeverity' message: type: string description: The log message Timestamp: type: string format: date-time description: An iso8601 formatted timestamp TaskPost: description: Configuration for a task to be created discriminator: propertyName: type anyOf: - $ref: '#/components/schemas/TaskBuildImage' - $ref: '#/components/schemas/TaskCancelBuild' - $ref: '#/components/schemas/TaskGetRequestAddress' - $ref: '#/components/schemas/TaskCancelDeployment' - $ref: '#/components/schemas/TaskCreateDeployment' - $ref: '#/components/schemas/TaskEnterMaintenance' - $ref: '#/components/schemas/TaskExitMaintenance' - $ref: '#/components/schemas/TaskGenerateOriginCertificate' - $ref: '#/components/schemas/TaskInvalidateCache' - $ref: '#/components/schemas/TaskPrepareForDownload' - $ref: '#/components/schemas/TaskResumeDeployment' - $ref: '#/components/schemas/TaskRunAction' ClusterConfiguration: type: object properties: name: $ref: '#/components/schemas/Name' description: The name of the cluster. access: description: 'Describes how a service deployment is accessible. ' type: array items: $ref: '#/components/schemas/ClusterAccess' minimum_size: $ref: '#/components/schemas/NonNegativeInteger' description: The minimum size that the cluster will auto scale in to. maximum_size: $ref: '#/components/schemas/NonNegativeInteger' description: The maximum size that the cluster will auto scale out to. manual_size: description: The explicit size that a cluster will scale to. Overrides automatic size. $ref: '#/components/schemas/NonNegativeInteger' scale_in_conditions: type: array description: When any of these conditions become true for a server, then the cluster automatic size will be reduced by one. items: $ref: '#/components/schemas/ScalingCondition' default: [] scale_out_conditions: type: array description: When any of these conditions become true for a server, then the cluster automatic size will be increased by one. items: $ref: '#/components/schemas/ScalingCondition' default: [] server_blueprints: type: array description: Specifies how servers in this cluster are to be built. items: $ref: '#/components/schemas/Blueprint' minItems: 1 uniqueItems: true minimum_increment: $ref: '#/components/schemas/PositiveInteger' description: When an automatic scale out operation occurs, specifies the minimum number of servers that will be created to satisfy the scale out. This is useful for applications whose servers are prone to failure in the presence of moderate increases in load by quickly scaling out additional servers. default: 1 server_failure_timeout: $ref: '#/components/schemas/Duration' description: Amount of time (in seconds) after which an unreachable server will be considered failed. A server is unreachable while attempts to connect to it are unsuccessful. Once a server is failed, a replacement server is created, and after verification, the failed server is destroyed. Defaults to a period of 90 seconds. default: 90 servers_update_webhook: description: If configured, this URL will be posted with contents equivalent to getting the cluster whenever its servers have been updated. $ref: '#/components/schemas/HttpUrl' default: '' verify_timeout: type: integer description: The time to wait for a new server to verify. If a server does not respond to a GET / with a non-5xx status code after this many seconds, then it fails verification and will be replaced or destroyed default: 600 minimum: 60 failed_server_disposition: description: If set to detach, failed servers won't be deleted from cloud provider after deletion. type: string enum: - destroy - detach default: destroy allocate_public_address: description: 'When set to true, server will have a public address associated with it. If set to false, the server will not have public address. Before making this change, please make sure that the proxy and servers with private addresses are in the same network. NOTE: As of now, this functionality is only supported for Centurylink cloud.' type: boolean default: true measurement_type: description: When self-reporting, server will post its measurements to /v2/servers/metrics periodically. When lg-status, server needs to be installed with lg_mod_status and Webscale will pull the measurements from the server periodically. When none, Webscale will not monitor the cluster type: string enum: - none - lg-status - self-reporting default: lg-status checks: type: array description: List of checks that needs to be performed to verify cluster server. items: $ref: '#/components/schemas/Check' maxItems: 50 metadata: type: - array - 'null' description: A set of key/value pairs that will be provided to servers created in this cluster. Server blueprint metadata overrides the cluster metadata on a key-by-key basis. items: $ref: '#/components/schemas/MetadataEntry' files: type: - array - 'null' description: A set of files to be made available on servers created for this cluster. Blueprint files override cluster files on a key-by-key basis. items: $ref: '#/components/schemas/MetadataFileEntry' manage_deployments: type: boolean description: Indicates whether the deployment process is blue/green. default: false destroy_delay: type: integer minimum: 0 default: 3600 description: 'For a managed cluster, this is the delay, in seconds, before destroying resources created for a cluster that is no longer needed. Rollbacks to a previous configuration that happen within this interval will be fast because the servers or pods from the previous configuration will still exist. Rollbacks after this delay has passed will take longer because new servers or pods will have to be created and it carries the additional risk that resources such as images may no longer exist. ' retained_configuration_count: type: integer minimum: 0 maximum: 25 default: 1 description: 'For a managed cluster, the number of configurations that will be retained in the configuration history. To be able to rollback to a previous version, retain at least one configuration. When retaining configurations, those that were not deployed successfully will be removed first, with the older configurations being removed before newer configurations. ' enter_maintenance_during_deployment: type: boolean default: false description: 'For managed deployments clusters only. When true for a cluster then all applications using it will be placed in maintenance mode until the new deployment is verified and available. In the event of a deployment failure, the applications will continue to remain in maintenance mode. ' labels: type: array description: 'Arbitrary labels applied to a resource For example, labels can be used to organize resources into categories such as production, staging, or development. ' items: $ref: '#/components/schemas/Label' environment: description: 'A reference to an environment to which a cluster belongs. ' type: - string - 'null' pattern: /v2/environments/[^/]+ hooks: description: 'A set of hook commands to run during a deployment. ' type: array items: type: object properties: id: type: string enum: - started - verified command: type: string via: type: - string - 'null' description: 'A reference to an SSH host through which all servers in a cluster must be accessed. When set, all servers will be accessed using their private addresses. When not set, servers are accessed using their public addresses. ' pattern: ^/v2/ssh-hosts/[a-z0-9]+$ auxiliary_clusters: type: array items: type: string description: 'A reference to another cluster that is an auxiliary to this one. At the start of deployment of this cluster, all auxiliary clusters will be deprovisioned (`min=max=0`). At the activation of a deployment for this cluster, auxiliary clusters will be re-provisioned at their former size. In addition, if auxiliary clusters reference the same VM or container images as this cluster at the start of a deployment, their images are updated to match before re-provisioning. A failed deployment must be corrected manually. ' pattern: ^/v2/clusters/[a-z0-9]+$ PositiveInteger: type: integer description: An integer of value 1 or more. minimum: 1 NonNegativeInteger: type: integer description: An integer of value 0 or more. minimum: 0 HttpUrl: type: string description: An HTTP URL address. format: uri AccountConfiguration: type: object properties: name: type: string description: The name for the account. keyword: type: string description: 'Used when including an account’s name into system components like VM instance names or file names. If not specified during account creation, the keyword attribute is automatically generated by transliterating the name to lowercase US-ASCII and replacing any sequences of punctuation and spaces to a dash. For instance, the name "Éxito S.A." results in a keyword of `exito-s-a`. Note that the keyword will not be automatically updated if the account is renamed. Modifying the keyword after resources have been created for an account may lead to unexpected issues. It is advised to perform this change only with the assistance of Webscale support. ' log_retention: type: array description: 'Configuration for retention of logs that are not application-related. ' items: $ref: '#/components/schemas/AccountLogRetention' owner: type: string pattern: /v2/users/[a-z0-9]+ description: An account owner. additionalProperties: false IdentityConfiguration: type: object description: Configuration of the identity assigned to cluster servers. required: - name - client_id - principal_id properties: name: type: string description: Name of the identity. client_id: type: string description: Client ID for the identity to be assigned. principal_id: type: string description: Principal ID for the identity to be assigned. additionalProperties: false parameters: start: name: start in: query description: The starting item to be returned, used for pagination. schema: type: integer default: 1 order: name: order in: query description: A comma-separated list of attribute names that specifies the order in which results should be returned. Each attribute may be prefixed by a `-` or `+` to specify descending or ascending sort respectively. The default for each attribute is ascending schema: type: string to: in: query name: to description: Select items before but not including this time stamp. schema: type: string format: date-time from: in: query name: from description: Select items on or after this time stamp. schema: type: string format: date-time limit: name: limit in: query description: The maximum number items to be returned. If not specified, the default is 100. schema: type: integer minimum: 0 securitySchemes: access_key: type: http scheme: Bearer description: "An access key secret must be sent as a\n[bearer token](https://www.rfc-editor.org/rfc/rfc7235#section-5.1)\nwith each HTTP request in an `Authorization` header. Tokens are obtained\nin one of three ways:\n\n1. Creating an access key in your\n [user profile](https://control.webscale.com/profile).\n2. Using an access key secret created when a service user is created\n with the [POST accounts/{id}/service-users](#post-/accounts/-id-/service-users)\n API.\n3. Obtaining a temporary access key using an existing access key secret\n for a specified account with the\n [POST users/self/authorization](#post-/users/-id-/authorization) API.\n"