openapi: 3.2.0 info: title: Webscale Clusters 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: Clusters x-tag-expanded: false paths: /clusters: get: summary: Read cluster collection description: Will return all the cluster resources that the caller is authorized to view. tags: - Clusters responses: '200': description: The call was successful. content: application/json: schema: type: array items: $ref: '#/components/schemas/Cluster' operationId: getClusters x-operation-id-source: derived post: summary: Create a cluster description: Creates a cluster. Servers for that cluster will be created to meet the minimum_size and manual_size settings. parameters: [] tags: - Clusters responses: '201': description: The cluster was successfully created. content: application/json: schema: $ref: '#/components/schemas/Cluster' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClusterPost' description: The cluster definition. operationId: postClusters x-operation-id-source: derived /clusters/{id}: get: summary: Read a cluster description: Will return the cluster resource if the caller's account is authorized to view. parameters: - name: id in: path required: true schema: type: string description: Cluster id. tags: - Clusters responses: '200': description: The call was successful. content: application/json: schema: $ref: '#/components/schemas/Cluster' operationId: getClustersById x-operation-id-source: derived patch: summary: Update a cluster description: Select properties of a cluster resource can be modified using this call. parameters: - name: id in: path required: true schema: type: string description: Cluster id. tags: - Clusters responses: '200': description: The call was successful. content: application/json: schema: $ref: '#/components/schemas/Cluster' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClusterPatch' description: The properties of the cluster resource to be patched.

Patchable properties are limited to those described in the ClusterPatch model. operationId: patchClustersById x-operation-id-source: derived delete: summary: Delete a cluster description: The cluster will be immediately deleted if it is not in use and has no active servers associated with it. If the cluster has any active servers associated with it, a task will be created to delete all the active after which the cluster itself will be deleted. parameters: - name: id in: path required: true schema: type: string description: Cluster id tags: - Clusters responses: '200': description: The cluster was successfully deleted. content: application/json: schema: $ref: '#/components/schemas/Cluster' '202': description: A task was created to delete the cluster. content: application/json: schema: $ref: '#/components/schemas/Task' operationId: deleteClustersById x-operation-id-source: derived /clusters/{id}/metrics: get: summary: Read cluster metrics description: 'Read named metrics for a cluster. A time period specified by `from` and `to` query parameters is required. A `resolution` parameter optionally specifies the size of the intervals in which metrics are returned. The metrics available are: ### normalized_load Average system load across all machines in a cluster. On UNIX-based machines, it reflects the system load average. On Windows-based machines, it corresponds to the average processor queue length. The value reported by each machine is normalized by dividing by the number of its logical processors, allowing consistent interpretation even when processor counts vary across machines or over time. ### cpu_utilization Average percent CPU utilization across all machines in a cluster. ### iowait_percent Average percentage of available CPU time across all machines in a cluster spent by ready tasks waiting for I/O operations to complete. ### memory_utilization Average percentage of utilized memory across all machines iin a cluster. ### disk_space Average amount of allocated disk space across all machines in a cluster, represented as an object mapping disk names to allocated disk space in bytes. ### disk_utilization Average percentage of allocated disk space used across all machines in a cluster, represented as an object mapping disk names to space utilization.' tags: - Clusters parameters: - name: id in: path required: true schema: type: string description: Cluster id. - name: names in: query required: true description: A comma separated list of metrics names. Result arrays will include metric values in the same order as specified here. schema: type: array items: type: string - $ref: '#/components/parameters/from' schema: {} - $ref: '#/components/parameters/to' schema: {} - $ref: '#/components/parameters/resolution' schema: {} - $ref: '#/components/parameters/summarize' schema: {} responses: '200': description: Metrics for the cluster have been returned successfully. content: application/json: schema: $ref: '#/components/schemas/Metrics' operationId: getClustersByIdMetrics x-operation-id-source: derived /clusters/metrics: get: summary: Read cluster collection metrics description: Returns requested metrics for all clusters. tags: - Clusters parameters: - name: names in: query required: true description: A comma separated list of metrics names. For the set of metrics supported, see [GET clusters/{id}/metrics](#get-/clusters/-id-/metrics) schema: type: array items: type: string - $ref: '#/components/parameters/from' schema: {} - $ref: '#/components/parameters/to' schema: {} - $ref: '#/components/parameters/resolution' responses: '200': description: Metrics for the clusters are returned successfully. content: application/json: schema: $ref: '#/components/schemas/Metrics' operationId: getClustersMetrics 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. ClusterPost: type: object allOf: - required: - name - minimum_size - maximum_size - scale_in_conditions - scale_out_conditions - server_blueprints - $ref: '#/components/schemas/ClusterConfiguration' 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 Server: type: object required: - public_address properties: public_address: $ref: '#/components/schemas/AddressWithPort' description: Public address of the server. Cluster: description: 'A cluster configures and manages a set of service deployments that perform some service on behalf of an application. Initially, clusters were created to manage web server workloads on cloud-based virtual machines. Since then, the initial capability has been expanded to encompass all kinds of services, including generic workers, cron servers, indexing services, cache services, and database servers. Deployment targets now include Kubernetes services such as EKS as well as highly customizable VM-based Docker hosting. ' type: object allOf: - $ref: '#/components/schemas/ClusterState' - $ref: '#/components/schemas/ClusterConfiguration' 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 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 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]+)*$ ClusterHref: type: - string - 'null' pattern: ^/v2/clusters/[a-z0-9]+$ description: The endpoint for the cluster resource. MetricValues: description: An array of metric values, one per resolution period type: array items: type: number ProviderHref: type: string pattern: ^/v2/providers/[a-z0-9]+$ description: Resource identifier for the provider, must be a URL encoded string. FileHref: type: string pattern: ^/v2/files/[a-z0-9]+$ description: Endpoint resource reference to a file. AddressWithPort: description: IP address with port number(optional). type: string pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/([0-9]|[1-2][0-9]|3[0-2]))?(:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9][0-9]|6[0-4][0-9][0-9][0-9]|[1-5](\d){4}|[1-9](\d){0,3}))?$ MultiMetrics: description: An Array of metrics for multiple objects type: array items: description: Identification and metric values for objects type: object properties: name: description: Name of the object type: string href: description: Href of the object type: string metrics: description: Requested metrics of the object anyOf: - $ref: '#/components/schemas/MetricValues' - $ref: '#/components/schemas/MetricSummary' AccountState: type: object properties: marketing_banners: type: array description: The marketing banners awaiting resolution by the account owner. 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 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' ProviderResourceHref: type: string pattern: ^(/v2/(providers|services)/[a-z0-9]+)(.*) description: Resource href that includes the Webscale provider identifier. ClusterState: type: object required: - href - automatic_size - active - servers properties: href: $ref: '#/components/schemas/ClusterHref' description: The endpoint for the cluster resource. automatic_size: type: integer description: The size that the cluster is currently auto scaled to. active: type: boolean description: Indicates if the cluster is active. Active clusters may auto scale and are monitored. servers: type: array items: $ref: '#/components/schemas/ClusterServer' created: $ref: '#/components/schemas/Timestamp' description: When the cluster was created. delete_pending: description: Indicates that the cluster is about to be deleted. type: boolean default: false 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 ServerNetwork: type: object required: - name - external_ipv4_address - ipv4_address properties: name: type: string description: The name of the network. external_ipv4_address: type: string format: ipv4 description: The external ipv4 address of the cluster server. ipv4_address: type: string format: ipv4 description: The ipv4 address of the cluster server. 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 Metrics: description: Metrics for the given specifications. type: object required: - from - to - resolution - metrics properties: from: $ref: '#/components/schemas/Timestamp' description: Start time for the metrics. to: $ref: '#/components/schemas/Timestamp' description: End time for the metrics. resolution: type: integer description: Resolution of the time series data returned. metrics: type: object description: Metrics returned additionalProperties: anyOf: - $ref: '#/components/schemas/MetricValues' - $ref: '#/components/schemas/MetricSummary' - $ref: '#/components/schemas/MultiMetrics' 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 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 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. 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 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. Timestamp: type: string format: date-time description: An iso8601 formatted timestamp 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 ClusterServer: type: object allOf: - $ref: '#/components/schemas/Server' - required: - href - name - state - networks properties: active_since: $ref: '#/components/schemas/Timestamp' description: Time since the server started accepting connections created: $ref: '#/components/schemas/Timestamp' description: Time when the virtual machine instance was created in the cloud but it was not set up to accept connections href: type: string description: The endpoint for the server resource is_failed: type: boolean description: This will be true for a server that has been unreachable for longer than the server failure timeout for its cluster. Once a server has failed, it is not recoverable and will be replaced or destroyed name: type: string description: The name of the server minLength: 1 networks: type: array items: $ref: '#/components/schemas/ServerNetwork' private_address: type: string description: The private address of the server public_address: type: string description: The public address of the server replacement_for: type: string description: A reference to a server being replaced by this one server_blueprint: $ref: '#/components/schemas/Blueprint' state: type: string description: The current state of the server. The state 'creating' indicates that the virtual machine instance is getting created in the cloud but it is not ready to accept connections. The state 'verifying' indicates that the server was created successfully and it is being verified to check if the web service is responding on that server. The state 'joining' indicates that the server verification was successful and the system is being reconfigured so that the server will begin receiving traffic. The state 'active' indicates that the server is either serving the traffic or ready to accept connections. The state 'failed' indicates that the server has been unreachable for longer than the server failure timeout for its cluster and it is not recoverable and will be replaced or destroyed. The state 'leaving' indicates that the server is about to leave the cluster and the system is being reconfigured so that the server will stop receiving the traffic. The state 'destroying' indicates that the server has stopped receiving the traffic and the instance is getting deleted from the cloud enum: - creating - joining - active - verifying - leaving - failed - destroying unreachable_since: $ref: '#/components/schemas/Timestamp' description: Time since the server stopped accepting connections 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 MetricSummary: description: A summary value of a metric across the entire returned time range type: number parameters: summarize: name: summarize in: query description: 'When true specifies that a single value for each named metric is returned for the requested time period instead of an array divided into resolution-sized buckets. Mutually exlusive with `resolution`. ' schema: type: boolean resolution: name: resolution in: query description: 'Size in seconds of each bucket for which metrics data will be returned. Mutually exclusive with `summarize`. ' schema: type: integer minimum: 5 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 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"