From f187dd2f2da6ee2e951971086e93d06b59fe1dfc Mon Sep 17 00:00:00 2001 From: AWS SDK For Ruby Date: Wed, 28 Aug 2024 18:18:15 +0000 Subject: [PATCH] Updated API models and rebuilt service gems. --- README.md | 1 + apis/appconfig/2019-10-09/api-2.json | 92 +- apis/appconfig/2019-10-09/docs-2.json | 57 +- apis/datazone/2018-05-10/api-2.json | 2 +- apis/datazone/2018-05-10/docs-2.json | 2 +- apis/devicefarm/2015-06-23/api-2.json | 11 +- apis/devicefarm/2015-06-23/docs-2.json | 22 +- apis/devicefarm/2015-06-23/examples-1.json | 2 - apis/ec2/2016-11-15/api-2.json | 7 +- apis/ec2/2016-11-15/docs-2.json | 3 +- apis/internetmonitor/2021-06-03/api-2.json | 7 +- apis/internetmonitor/2021-06-03/docs-2.json | 2 +- apis/pcs/2023-02-10/api-2.json | 1344 ++++++++++++ apis/pcs/2023-02-10/docs-2.json | 827 +++++++ apis/pcs/2023-02-10/endpoint-rule-set-1.json | 350 +++ apis/pcs/2023-02-10/endpoint-tests-1.json | 314 +++ apis/pcs/2023-02-10/examples-1.json | 5 + apis/pcs/2023-02-10/paginators-1.json | 22 + apis/pcs/2023-02-10/waiters-2.json | 5 + apis/workspaces/2015-04-08/docs-2.json | 6 +- gems/aws-partitions/CHANGELOG.md | 5 + gems/aws-partitions/VERSION | 2 +- gems/aws-partitions/lib/aws-partitions.rb | 1 + gems/aws-partitions/partitions.json | 29 +- gems/aws-sdk-appconfig/CHANGELOG.md | 5 + gems/aws-sdk-appconfig/VERSION | 2 +- .../lib/aws-sdk-appconfig.rb | 2 +- .../lib/aws-sdk-appconfig/client.rb | 188 +- .../lib/aws-sdk-appconfig/client_api.rb | 41 +- .../lib/aws-sdk-appconfig/endpoints.rb | 28 + .../aws-sdk-appconfig/plugins/endpoints.rb | 4 + .../lib/aws-sdk-appconfig/types.rb | 182 +- gems/aws-sdk-appconfig/sig/client.rbs | 27 +- gems/aws-sdk-appconfig/sig/types.rbs | 20 +- gems/aws-sdk-datazone/CHANGELOG.md | 5 + gems/aws-sdk-datazone/VERSION | 2 +- gems/aws-sdk-datazone/lib/aws-sdk-datazone.rb | 2 +- .../lib/aws-sdk-datazone/client.rb | 4 +- gems/aws-sdk-devicefarm/CHANGELOG.md | 5 + gems/aws-sdk-devicefarm/VERSION | 2 +- .../lib/aws-sdk-devicefarm.rb | 2 +- .../lib/aws-sdk-devicefarm/client.rb | 54 +- .../lib/aws-sdk-devicefarm/types.rb | 129 -- gems/aws-sdk-devicefarm/sig/client.rbs | 6 +- gems/aws-sdk-devicefarm/sig/types.rbs | 12 +- gems/aws-sdk-ec2/CHANGELOG.md | 5 + gems/aws-sdk-ec2/VERSION | 2 +- gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb | 2 +- gems/aws-sdk-ec2/lib/aws-sdk-ec2/client.rb | 54 +- .../aws-sdk-ec2/lib/aws-sdk-ec2/client_api.rb | 1 + gems/aws-sdk-ec2/lib/aws-sdk-ec2/types.rb | 7 +- gems/aws-sdk-ec2/sig/client.rbs | 3 +- gems/aws-sdk-ec2/sig/types.rbs | 5 +- gems/aws-sdk-internetmonitor/CHANGELOG.md | 5 + gems/aws-sdk-internetmonitor/VERSION | 2 +- .../aws-sdk-internetmonitor.gemspec | 2 +- .../lib/aws-sdk-internetmonitor.rb | 2 +- .../lib/aws-sdk-internetmonitor/client.rb | 13 +- .../lib/aws-sdk-internetmonitor/client_api.rb | 3 +- .../lib/aws-sdk-internetmonitor/types.rb | 9 + gems/aws-sdk-internetmonitor/sig/client.rbs | 2 +- gems/aws-sdk-internetmonitor/sig/types.rbs | 2 +- gems/aws-sdk-pcs/CHANGELOG.md | 8 + gems/aws-sdk-pcs/LICENSE.txt | 202 ++ gems/aws-sdk-pcs/VERSION | 1 + gems/aws-sdk-pcs/aws-sdk-pcs.gemspec | 32 + gems/aws-sdk-pcs/features/env.rb | 18 + gems/aws-sdk-pcs/features/step_definitions.rb | 8 + gems/aws-sdk-pcs/lib/aws-sdk-pcs.rb | 58 + gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb | 1608 ++++++++++++++ .../aws-sdk-pcs/lib/aws-sdk-pcs/client_api.rb | 777 +++++++ .../lib/aws-sdk-pcs/customizations.rb | 0 .../lib/aws-sdk-pcs/endpoint_parameters.rb | 66 + .../lib/aws-sdk-pcs/endpoint_provider.rb | 54 + gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoints.rb | 268 +++ gems/aws-sdk-pcs/lib/aws-sdk-pcs/errors.rb | 213 ++ .../lib/aws-sdk-pcs/plugins/endpoints.rb | 106 + gems/aws-sdk-pcs/lib/aws-sdk-pcs/resource.rb | 26 + gems/aws-sdk-pcs/lib/aws-sdk-pcs/types.rb | 1916 +++++++++++++++++ gems/aws-sdk-pcs/lib/aws-sdk-pcs/waiters.rb | 15 + gems/aws-sdk-pcs/sig/client.rbs | 359 +++ gems/aws-sdk-pcs/sig/errors.rbs | 48 + gems/aws-sdk-pcs/sig/resource.rbs | 81 + gems/aws-sdk-pcs/sig/types.rbs | 475 ++++ gems/aws-sdk-pcs/sig/waiters.rbs | 13 + .../spec/endpoint_provider_spec.rb | 361 ++++ gems/aws-sdk-pcs/spec/spec_helper.rb | 18 + gems/aws-sdk-resources/CHANGELOG.md | 5 + gems/aws-sdk-resources/VERSION | 2 +- .../aws-sdk-resources.gemspec | 1 + .../lib/aws-sdk-resources.rb | 1 + gems/aws-sdk-workspaces/CHANGELOG.md | 5 + gems/aws-sdk-workspaces/VERSION | 2 +- .../lib/aws-sdk-workspaces.rb | 2 +- .../lib/aws-sdk-workspaces/client.rb | 7 +- .../lib/aws-sdk-workspaces/types.rb | 6 + services.json | 3 + 97 files changed, 10395 insertions(+), 329 deletions(-) create mode 100644 apis/pcs/2023-02-10/api-2.json create mode 100644 apis/pcs/2023-02-10/docs-2.json create mode 100644 apis/pcs/2023-02-10/endpoint-rule-set-1.json create mode 100644 apis/pcs/2023-02-10/endpoint-tests-1.json create mode 100644 apis/pcs/2023-02-10/examples-1.json create mode 100644 apis/pcs/2023-02-10/paginators-1.json create mode 100644 apis/pcs/2023-02-10/waiters-2.json create mode 100644 gems/aws-sdk-pcs/CHANGELOG.md create mode 100644 gems/aws-sdk-pcs/LICENSE.txt create mode 100644 gems/aws-sdk-pcs/VERSION create mode 100644 gems/aws-sdk-pcs/aws-sdk-pcs.gemspec create mode 100644 gems/aws-sdk-pcs/features/env.rb create mode 100644 gems/aws-sdk-pcs/features/step_definitions.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/client_api.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/customizations.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_parameters.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_provider.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoints.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/errors.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/plugins/endpoints.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/resource.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/types.rb create mode 100644 gems/aws-sdk-pcs/lib/aws-sdk-pcs/waiters.rb create mode 100644 gems/aws-sdk-pcs/sig/client.rbs create mode 100644 gems/aws-sdk-pcs/sig/errors.rbs create mode 100644 gems/aws-sdk-pcs/sig/resource.rbs create mode 100644 gems/aws-sdk-pcs/sig/types.rbs create mode 100644 gems/aws-sdk-pcs/sig/waiters.rbs create mode 100644 gems/aws-sdk-pcs/spec/endpoint_provider_spec.rb create mode 100644 gems/aws-sdk-pcs/spec/spec_helper.rb diff --git a/README.md b/README.md index 3ad54c321e1..30b4c8cd46b 100644 --- a/README.md +++ b/README.md @@ -420,6 +420,7 @@ RubyGems.org page under "LINKS" section. | AWS Organizations | Aws::Organizations | aws-sdk-organizations | 2016-11-28 | | AWS Outposts | Aws::Outposts | aws-sdk-outposts | 2019-12-03 | | AWS Panorama | Aws::Panorama | aws-sdk-panorama | 2019-07-24 | +| AWS Parallel Computing Service | Aws::PCS | aws-sdk-pcs | 2023-02-10 | | AWS Performance Insights | Aws::PI | aws-sdk-pi | 2018-02-27 | | AWS Price List Service | Aws::Pricing | aws-sdk-pricing | 2017-10-15 | | AWS Private 5G | Aws::PrivateNetworks | aws-sdk-privatenetworks | 2021-12-03 | diff --git a/apis/appconfig/2019-10-09/api-2.json b/apis/appconfig/2019-10-09/api-2.json index 40bae2d666e..924dfe04b47 100644 --- a/apis/appconfig/2019-10-09/api-2.json +++ b/apis/appconfig/2019-10-09/api-2.json @@ -227,6 +227,19 @@ {"shape":"InternalServerException"} ] }, + "GetAccountSettings":{ + "name":"GetAccountSettings", + "http":{ + "method":"GET", + "requestUri":"/settings", + "responseCode":200 + }, + "output":{"shape":"AccountSettings"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, "GetApplication":{ "name":"GetApplication", "http":{ @@ -554,6 +567,20 @@ {"shape":"InternalServerException"} ] }, + "UpdateAccountSettings":{ + "name":"UpdateAccountSettings", + "http":{ + "method":"PATCH", + "requestUri":"/settings", + "responseCode":200 + }, + "input":{"shape":"UpdateAccountSettingsRequest"}, + "output":{"shape":"AccountSettings"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, "UpdateApplication":{ "name":"UpdateApplication", "http":{ @@ -661,6 +688,12 @@ } }, "shapes":{ + "AccountSettings":{ + "type":"structure", + "members":{ + "DeletionProtection":{"shape":"DeletionProtectionSettings"} + } + }, "Action":{ "type":"structure", "members":{ @@ -747,7 +780,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+" + "pattern":"arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+" }, "BadRequestDetails":{ "type":"structure", @@ -1027,6 +1060,11 @@ "shape":"Id", "location":"uri", "locationName":"ConfigurationProfileId" + }, + "DeletionProtectionCheck":{ + "shape":"DeletionProtectionCheck", + "location":"header", + "locationName":"x-amzn-deletion-protection-check" } } }, @@ -1044,19 +1082,24 @@ "DeleteEnvironmentRequest":{ "type":"structure", "required":[ - "ApplicationId", - "EnvironmentId" + "EnvironmentId", + "ApplicationId" ], "members":{ - "ApplicationId":{ + "EnvironmentId":{ "shape":"Id", "location":"uri", - "locationName":"ApplicationId" + "locationName":"EnvironmentId" }, - "EnvironmentId":{ + "ApplicationId":{ "shape":"Id", "location":"uri", - "locationName":"EnvironmentId" + "locationName":"ApplicationId" + }, + "DeletionProtectionCheck":{ + "shape":"DeletionProtectionCheck", + "location":"header", + "locationName":"x-amzn-deletion-protection-check" } } }, @@ -1113,6 +1156,33 @@ } } }, + "DeletionProtectionCheck":{ + "type":"string", + "enum":[ + "ACCOUNT_DEFAULT", + "APPLY", + "BYPASS" + ] + }, + "DeletionProtectionDuration":{ + "type":"integer", + "box":true, + "max":1440, + "min":15 + }, + "DeletionProtectionSettings":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "box":true + }, + "ProtectionPeriodInMinutes":{ + "shape":"DeletionProtectionDuration", + "box":true + } + } + }, "Deployment":{ "type":"structure", "members":{ @@ -2116,6 +2186,12 @@ } } }, + "UpdateAccountSettingsRequest":{ + "type":"structure", + "members":{ + "DeletionProtection":{"shape":"DeletionProtectionSettings"} + } + }, "UpdateApplicationRequest":{ "type":"structure", "required":["ApplicationId"], @@ -2146,7 +2222,7 @@ "location":"uri", "locationName":"ConfigurationProfileId" }, - "Name":{"shape":"Name"}, + "Name":{"shape":"LongName"}, "Description":{"shape":"Description"}, "RetrievalRoleArn":{"shape":"RoleArn"}, "Validators":{"shape":"ValidatorList"}, diff --git a/apis/appconfig/2019-10-09/docs-2.json b/apis/appconfig/2019-10-09/docs-2.json index 0ce90a66cff..334ab32fc7d 100644 --- a/apis/appconfig/2019-10-09/docs-2.json +++ b/apis/appconfig/2019-10-09/docs-2.json @@ -8,16 +8,17 @@ "CreateEnvironment": "

Creates an environment. For each application, you define one or more environments. An environment is a deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

", "CreateExtension": "

Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.

You can create your own extensions or use the Amazon Web Services authored extensions provided by AppConfig. For an AppConfig extension that uses Lambda, you must create a Lambda function to perform any computation and processing defined in the extension. If you plan to create custom versions of the Amazon Web Services authored notification extensions, you only need to specify an Amazon Resource Name (ARN) in the Uri field for the new extension version.

For more information about extensions, see Extending workflows in the AppConfig User Guide.

", "CreateExtensionAssociation": "

When you create an extension or configure an Amazon Web Services authored extension, you associate the extension with an AppConfig application, environment, or configuration profile. For example, you can choose to run the AppConfig deployment events to Amazon SNS Amazon Web Services authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AppConfig resource is called an extension association. An extension association is a specified relationship between an extension and an AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

", - "CreateHostedConfigurationVersion": "

Creates a new configuration in the AppConfig hosted configuration store.

", - "DeleteApplication": "

Deletes an application. Deleting an application does not delete a configuration from a host.

", - "DeleteConfigurationProfile": "

Deletes a configuration profile. Deleting a configuration profile does not delete a configuration from a host.

", - "DeleteDeploymentStrategy": "

Deletes a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host.

", - "DeleteEnvironment": "

Deletes an environment. Deleting an environment does not delete a configuration from a host.

", + "CreateHostedConfigurationVersion": "

Creates a new configuration in the AppConfig hosted configuration store. If you're creating a feature flag, we recommend you familiarize yourself with the JSON schema for feature flag data. For more information, see Type reference for AWS.AppConfig.FeatureFlags in the AppConfig User Guide.

", + "DeleteApplication": "

Deletes an application.

", + "DeleteConfigurationProfile": "

Deletes a configuration profile.

To prevent users from unintentionally deleting actively-used configuration profiles, enable deletion protection.

", + "DeleteDeploymentStrategy": "

Deletes a deployment strategy.

", + "DeleteEnvironment": "

Deletes an environment.

To prevent users from unintentionally deleting actively-used environments, enable deletion protection.

", "DeleteExtension": "

Deletes an AppConfig extension. You must delete all associations to an extension before you delete the extension.

", "DeleteExtensionAssociation": "

Deletes an extension association. This action doesn't delete extensions defined in the association.

", "DeleteHostedConfigurationVersion": "

Deletes a version of a configuration from the AppConfig hosted configuration store.

", + "GetAccountSettings": "

Returns information about the status of the DeletionProtection parameter.

", "GetApplication": "

Retrieves information about an application.

", - "GetConfiguration": "

(Deprecated) Retrieves the latest deployed configuration.

Note the following important information.

", + "GetConfiguration": "

(Deprecated) Retrieves the latest deployed configuration.

Note the following important information.

", "GetConfigurationProfile": "

Retrieves information about a configuration profile.

", "GetDeployment": "

Retrieves information about a configuration deployment.

", "GetDeploymentStrategy": "

Retrieves information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

", @@ -38,6 +39,7 @@ "StopDeployment": "

Stops a deployment. This API action works only on deployments that have a status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK.

", "TagResource": "

Assigns metadata to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.

", "UntagResource": "

Deletes a tag key and value from an AppConfig resource.

", + "UpdateAccountSettings": "

Updates the value of the DeletionProtection parameter.

", "UpdateApplication": "

Updates an application.

", "UpdateConfigurationProfile": "

Updates a configuration profile.

", "UpdateDeploymentStrategy": "

Updates a deployment strategy.

", @@ -47,6 +49,11 @@ "ValidateConfiguration": "

Uses the validators in a configuration profile to validate a configuration.

" }, "shapes": { + "AccountSettings": { + "base": null, + "refs": { + } + }, "Action": { "base": "

An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

", "refs": { @@ -157,13 +164,14 @@ "base": null, "refs": { "Configuration$Content": "

The content of the configuration or the configuration data.

The Content attribute only contains data if the system finds new or updated configuration data. If there is no new or updated data and ClientConfigurationVersion matches the version of the current configuration, AppConfig returns a 204 No Content HTTP response code and the Content value will be empty.

", - "CreateHostedConfigurationVersionRequest$Content": "

The content of the configuration or the configuration data.

", + "CreateHostedConfigurationVersionRequest$Content": "

The configuration data, as bytes.

AppConfig accepts any type of data, including text formats like JSON or TOML, or binary formats like protocol buffers or compressed data.

", "HostedConfigurationVersion$Content": "

The content of the configuration or the configuration data.

" } }, "Boolean": { "base": null, "refs": { + "DeletionProtectionSettings$Enabled": "

A parameter that indicates if deletion protection is enabled or not.

", "Parameter$Required": "

A parameter value must be specified in the extension association.

", "Parameter$Dynamic": "

Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.

" } @@ -285,6 +293,26 @@ "refs": { } }, + "DeletionProtectionCheck": { + "base": null, + "refs": { + "DeleteConfigurationProfileRequest$DeletionProtectionCheck": "

A parameter to configure deletion protection. If enabled, deletion protection prevents a user from deleting a configuration profile if your application has called either GetLatestConfiguration or for the configuration profile during the specified interval.

This parameter supports the following values:

", + "DeleteEnvironmentRequest$DeletionProtectionCheck": "

A parameter to configure deletion protection. If enabled, deletion protection prevents a user from deleting an environment if your application called either GetLatestConfiguration or in the environment during the specified interval.

This parameter supports the following values:

" + } + }, + "DeletionProtectionDuration": { + "base": null, + "refs": { + "DeletionProtectionSettings$ProtectionPeriodInMinutes": "

The time interval during which AppConfig monitors for calls to GetLatestConfiguration or for a configuration profile or from an environment. AppConfig returns an error if a user calls or for the designated configuration profile or environment. To bypass the error and delete a configuration profile or an environment, specify BYPASS for the DeletionProtectionCheck parameter for either or .

" + } + }, + "DeletionProtectionSettings": { + "base": "

A parameter to configure deletion protection. If enabled, deletion protection prevents a user from deleting a configuration profile or an environment if AppConfig has called either GetLatestConfiguration or for the configuration profile or from the environment during the specified interval.

This setting uses the following default values:

", + "refs": { + "AccountSettings$DeletionProtection": "

A parameter to configure deletion protection. If enabled, deletion protection prevents a user from deleting a configuration profile or an environment if AppConfig has called either GetLatestConfiguration or for the configuration profile or from the environment during the specified interval. Deletion protection is disabled by default. The default interval for ProtectionPeriodInMinutes is 60.

", + "UpdateAccountSettingsRequest$DeletionProtection": "

A parameter to configure deletion protection. If enabled, deletion protection prevents a user from deleting a configuration profile or an environment if AppConfig has called either GetLatestConfiguration or for the configuration profile or from the environment during the specified interval. Deletion protection is disabled by default. The default interval for ProtectionPeriodInMinutes is 60.

" + } + }, "Deployment": { "base": null, "refs": { @@ -583,8 +611,8 @@ "DeleteApplicationRequest$ApplicationId": "

The ID of the application to delete.

", "DeleteConfigurationProfileRequest$ApplicationId": "

The application ID that includes the configuration profile you want to delete.

", "DeleteConfigurationProfileRequest$ConfigurationProfileId": "

The ID of the configuration profile you want to delete.

", - "DeleteEnvironmentRequest$ApplicationId": "

The application ID that includes the environment that you want to delete.

", "DeleteEnvironmentRequest$EnvironmentId": "

The ID of the environment that you want to delete.

", + "DeleteEnvironmentRequest$ApplicationId": "

The application ID that includes the environment that you want to delete.

", "DeleteExtensionAssociationRequest$ExtensionAssociationId": "

The ID of the extension association to delete.

", "DeleteHostedConfigurationVersionRequest$ApplicationId": "

The application ID.

", "DeleteHostedConfigurationVersionRequest$ConfigurationProfileId": "

The configuration profile ID.

", @@ -762,7 +790,8 @@ "refs": { "ConfigurationProfile$Name": "

The name of the configuration profile.

", "ConfigurationProfileSummary$Name": "

The name of the configuration profile.

", - "CreateConfigurationProfileRequest$Name": "

A name for the configuration profile.

" + "CreateConfigurationProfileRequest$Name": "

A name for the configuration profile.

", + "UpdateConfigurationProfileRequest$Name": "

The name of the configuration profile.

" } }, "MaxResults": { @@ -823,7 +852,6 @@ "Extension$Name": "

The extension name.

", "ExtensionSummary$Name": "

The extension name.

", "UpdateApplicationRequest$Name": "

The name of the application.

", - "UpdateConfigurationProfileRequest$Name": "

The name of the configuration profile.

", "UpdateEnvironmentRequest$Name": "

The name of the environment.

" } }, @@ -1034,6 +1062,11 @@ "refs": { } }, + "UpdateAccountSettingsRequest": { + "base": null, + "refs": { + } + }, "UpdateApplicationRequest": { "base": null, "refs": { @@ -1081,7 +1114,7 @@ } }, "Validator": { - "base": "

A validator provides a syntactic or semantic check to ensure the configuration that you want to deploy functions as intended. To validate your application configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid.

", + "base": "

A validator provides a syntactic or semantic check to ensure the configuration that you want to deploy functions as intended. To validate your application configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid. For more information, see About validators in the AppConfig User Guide.

", "refs": { "ValidatorList$member": null } @@ -1113,7 +1146,7 @@ "Configuration$ConfigurationVersion": "

The configuration version.

", "Deployment$ConfigurationVersion": "

The configuration version that was deployed.

", "DeploymentSummary$ConfigurationVersion": "

The version of the configuration.

", - "GetConfigurationRequest$ClientConfigurationVersion": "

The configuration version returned in the most recent GetConfiguration response.

AppConfig uses the value of the ClientConfigurationVersion parameter to identify the configuration version on your clients. If you don’t send ClientConfigurationVersion with each call to GetConfiguration, your clients receive the current configuration. You are charged each time your clients receive a configuration.

To avoid excess charges, we recommend you use the StartConfigurationSession and GetLatestConfiguration APIs, which track the client configuration version on your behalf. If you choose to continue using GetConfiguration, we recommend that you include the ClientConfigurationVersion value with every call to GetConfiguration. The value to use for ClientConfigurationVersion comes from the ConfigurationVersion attribute returned by GetConfiguration when there is new or updated data, and should be saved for subsequent calls to GetConfiguration.

For more information about working with configurations, see Retrieving the Configuration in the AppConfig User Guide.

", + "GetConfigurationRequest$ClientConfigurationVersion": "

The configuration version returned in the most recent GetConfiguration response.

AppConfig uses the value of the ClientConfigurationVersion parameter to identify the configuration version on your clients. If you don’t send ClientConfigurationVersion with each call to GetConfiguration, your clients receive the current configuration. You are charged each time your clients receive a configuration.

To avoid excess charges, we recommend you use the StartConfigurationSession and GetLatestConfiguration APIs, which track the client configuration version on your behalf. If you choose to continue using GetConfiguration, we recommend that you include the ClientConfigurationVersion value with every call to GetConfiguration. The value to use for ClientConfigurationVersion comes from the ConfigurationVersion attribute returned by GetConfiguration when there is new or updated data, and should be saved for subsequent calls to GetConfiguration.

For more information about working with configurations, see Retrieving the Configuration in the AppConfig User Guide.

", "StartDeploymentRequest$ConfigurationVersion": "

The configuration version to deploy. If deploying an AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.

", "ValidateConfigurationRequest$ConfigurationVersion": "

The version of the configuration to validate.

" } diff --git a/apis/datazone/2018-05-10/api-2.json b/apis/datazone/2018-05-10/api-2.json index 88baed0b52b..5921d0cd7a9 100644 --- a/apis/datazone/2018-05-10/api-2.json +++ b/apis/datazone/2018-05-10/api-2.json @@ -2845,7 +2845,7 @@ }, "AuthorizedPrincipalIdentifier":{ "type":"string", - "pattern":"^[a-zA-Z0-9:/_-]*$" + "pattern":"^[a-zA-Z0-9:/._-]*$" }, "AuthorizedPrincipalIdentifiers":{ "type":"list", diff --git a/apis/datazone/2018-05-10/docs-2.json b/apis/datazone/2018-05-10/docs-2.json index 8fa3eec588d..f8d25d4d187 100644 --- a/apis/datazone/2018-05-10/docs-2.json +++ b/apis/datazone/2018-05-10/docs-2.json @@ -32,7 +32,7 @@ "DeleteAsset": "

Deletes an asset in Amazon DataZone.

", "DeleteAssetFilter": "

Deletes an asset filter.

", "DeleteAssetType": "

Deletes an asset type in Amazon DataZone.

", - "DeleteDataProduct": "

Deletes an data product in Amazon DataZone.

", + "DeleteDataProduct": "

Deletes a data product in Amazon DataZone.

", "DeleteDataSource": "

Deletes a data source in Amazon DataZone.

", "DeleteDomain": "

Deletes a Amazon DataZone domain.

", "DeleteEnvironment": "

Deletes an environment in Amazon DataZone.

", diff --git a/apis/devicefarm/2015-06-23/api-2.json b/apis/devicefarm/2015-06-23/api-2.json index 088bde6d750..b8c0d95a6e7 100644 --- a/apis/devicefarm/2015-06-23/api-2.json +++ b/apis/devicefarm/2015-06-23/api-2.json @@ -1188,7 +1188,7 @@ "type":"string", "max":1011, "min":32, - "pattern":"^arn:.+" + "pattern":"^arn:aws:devicefarm:.+" }, "AmazonResourceNames":{ "type":"list", @@ -3370,8 +3370,6 @@ "type":"string", "enum":[ "BUILTIN_FUZZ", - "BUILTIN_EXPLORER", - "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", @@ -3382,14 +3380,9 @@ "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", - "CALABASH", "INSTRUMENTATION", - "UIAUTOMATION", - "UIAUTOMATOR", "XCTEST", - "XCTEST_UI", - "REMOTE_ACCESS_RECORD", - "REMOTE_ACCESS_REPLAY" + "XCTEST_UI" ] }, "Tests":{ diff --git a/apis/devicefarm/2015-06-23/docs-2.json b/apis/devicefarm/2015-06-23/docs-2.json index 9c14393d252..1950c9ff07f 100644 --- a/apis/devicefarm/2015-06-23/docs-2.json +++ b/apis/devicefarm/2015-06-23/docs-2.json @@ -234,7 +234,7 @@ "ArtifactType": { "base": null, "refs": { - "Artifact$type": "

The artifact's type.

Allowed values include the following:

" + "Artifact$type": "

The artifact's type.

Allowed values include the following:

" } }, "Artifacts": { @@ -2170,18 +2170,18 @@ "TestParameters": { "base": null, "refs": { - "ScheduleRunTest$parameters": "

The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.

For all tests:

For Calabash tests:

For Appium tests (all types):

For fuzz tests (Android only):

For Explorer tests:

For Instrumentation:

For XCTest and XCTestUI:

For UIAutomator:

" + "ScheduleRunTest$parameters": "

The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.

For all tests:

For Appium tests (all types):

For fuzz tests (Android only):

For Instrumentation:

For XCTest and XCTestUI:

" } }, "TestType": { "base": null, "refs": { - "GetDevicePoolCompatibilityRequest$testType": "

The test type for the specified device pool.

Allowed values include the following:

", - "Job$type": "

The job's type.

Allowed values include the following:

", - "Run$type": "

The run's type.

Must be one of the following values:

", - "ScheduleRunTest$type": "

The test's type.

Must be one of the following values:

", - "Suite$type": "

The suite's type.

Must be one of the following values:

", - "Test$type": "

The test's type.

Must be one of the following values:

" + "GetDevicePoolCompatibilityRequest$testType": "

The test type for the specified device pool.

Allowed values include the following:

", + "Job$type": "

The job's type.

Allowed values include the following:

", + "Run$type": "

The run's type.

Must be one of the following values:

", + "ScheduleRunTest$type": "

The test's type.

Must be one of the following values:

", + "Suite$type": "

The suite's type.

Must be one of the following values:

", + "Test$type": "

The test's type.

Must be one of the following values:

" } }, "Tests": { @@ -2347,9 +2347,9 @@ "UploadType": { "base": null, "refs": { - "CreateUploadRequest$type": "

The upload's upload type.

Must be one of the following values:

If you call CreateUpload with WEB_APP specified, AWS Device Farm throws an ArgumentException error.

", - "ListUploadsRequest$type": "

The type of upload.

Must be one of the following values:

", - "Upload$type": "

The upload's type.

Must be one of the following values:

" + "CreateUploadRequest$type": "

The upload's upload type.

Must be one of the following values:

If you call CreateUpload with WEB_APP specified, AWS Device Farm throws an ArgumentException error.

", + "ListUploadsRequest$type": "

The type of upload.

Must be one of the following values:

", + "Upload$type": "

The upload's type.

Must be one of the following values:

" } }, "Uploads": { diff --git a/apis/devicefarm/2015-06-23/examples-1.json b/apis/devicefarm/2015-06-23/examples-1.json index 9db4e46c6d8..2a4fcd67908 100644 --- a/apis/devicefarm/2015-06-23/examples-1.json +++ b/apis/devicefarm/2015-06-23/examples-1.json @@ -430,7 +430,6 @@ "output": { "run": { "name": "My Test Run", - "type": "BUILTIN_EXPLORER", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", "billingMethod": "METERED", "completedJobs": 0, @@ -896,7 +895,6 @@ "runs": [ { "name": "My Test Run", - "type": "BUILTIN_EXPLORER", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", "billingMethod": "METERED", "completedJobs": 0, diff --git a/apis/ec2/2016-11-15/api-2.json b/apis/ec2/2016-11-15/api-2.json index dc9c65d8b8e..0beca53be5f 100644 --- a/apis/ec2/2016-11-15/api-2.json +++ b/apis/ec2/2016-11-15/api-2.json @@ -6296,7 +6296,8 @@ "TagSpecifications":{ "shape":"TagSpecificationList", "locationName":"TagSpecification" - } + }, + "IpamPoolId":{"shape":"IpamPoolId"} } }, "AllocateAddressResult":{ @@ -30032,7 +30033,8 @@ "vpc", "ec2-public-ipv4-pool", "custom", - "subnet" + "subnet", + "eip" ] }, "IpamPoolAllocationSet":{ @@ -30254,6 +30256,7 @@ "service-managed-ip", "service-managed-byoip", "amazon-owned-eip", + "amazon-owned-contig", "byoip", "ec2-public-ip" ] diff --git a/apis/ec2/2016-11-15/docs-2.json b/apis/ec2/2016-11-15/docs-2.json index 0d38b322786..8e57269c758 100644 --- a/apis/ec2/2016-11-15/docs-2.json +++ b/apis/ec2/2016-11-15/docs-2.json @@ -571,7 +571,7 @@ "PurchaseReservedInstancesOffering": "

Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing.

Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances.

To queue a purchase for a future date and time, specify a purchase time. If you do not specify a purchase time, the default is the current time.

For more information, see Reserved Instances and Sell in the Reserved Instance Marketplace in the Amazon EC2 User Guide.

", "PurchaseScheduledInstances": "

You can no longer purchase Scheduled Instances.

Purchases the Scheduled Instances with the specified schedule.

Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period.

After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

", "RebootInstances": "

Requests a reboot of the specified instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored.

If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a hard reboot.

For more information about troubleshooting, see Troubleshoot an unreachable instance in the Amazon EC2 User Guide.

", - "RegisterImage": "

Registers an AMI. When you're creating an instance-store backed AMI, registering the AMI is the final step in the creation process. For more information about creating AMIs, see Create your own AMI in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself. We recommend that you always use CreateImage unless you have a specific reason to use RegisterImage.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

Register a snapshot of a root device volume

You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using a block device mapping. You can't set the encryption state of the volume using the block device mapping. If the snapshot is encrypted, or encryption by default is enabled, the root volume of an instance launched from the AMI is encrypted.

For more information, see Create a Linux AMI from a snapshot and Use encryption with Amazon EBS-backed AMIs in the Amazon Elastic Compute Cloud User Guide.

Amazon Web Services Marketplace product codes

If any snapshots have Amazon Web Services Marketplace product codes, they are copied to the new AMI.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the Amazon EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of registering the AMI, do the following to preserve the billing product code association:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create an AMI from the instance using CreateImage.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see Understand AMI billing information in the Amazon EC2 User Guide.

", + "RegisterImage": "

Registers an AMI. When you're creating an instance-store backed AMI, registering the AMI is the final step in the creation process. For more information about creating AMIs, see Create an AMI from a snapshot and Create an instance-store backed AMI in the Amazon EC2 User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself. We recommend that you always use CreateImage unless you have a specific reason to use RegisterImage.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

Register a snapshot of a root device volume

You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using a block device mapping. You can't set the encryption state of the volume using the block device mapping. If the snapshot is encrypted, or encryption by default is enabled, the root volume of an instance launched from the AMI is encrypted.

For more information, see Create an AMI from a snapshot and Use encryption with Amazon EBS-backed AMIs in the Amazon EC2 User Guide.

Amazon Web Services Marketplace product codes

If any snapshots have Amazon Web Services Marketplace product codes, they are copied to the new AMI.

In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require correct licensing information to be present on the AMI. For more information, see Understand AMI billing information in the Amazon EC2 User Guide. When creating an AMI from a snapshot, the RegisterImage operation derives the correct billing information from the snapshot's metadata, but this requires the appropriate metadata to be present. To verify if the correct billing information was applied, check the PlatformDetails field on the new AMI. If the field is empty or doesn't match the expected operating system code (for example, Windows, RedHat, SUSE, or SQL), the AMI creation was unsuccessful, and you should discard the AMI and instead create the AMI from an instance using CreateImage. For more information, see Create an AMI from an instance in the Amazon EC2 User Guide.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see Understand AMI billing information in the Amazon EC2 User Guide.

", "RegisterInstanceEventNotificationAttributes": "

Registers a set of tag keys to include in scheduled event notifications for your resources.

To remove tags, use DeregisterInstanceEventNotificationAttributes.

", "RegisterTransitGatewayMulticastGroupMembers": "

Registers members (network interfaces) with the transit gateway multicast group. A member is a network interface associated with a supported EC2 instance that receives multicast traffic. For more information, see Multicast on transit gateways in the Amazon Web Services Transit Gateways Guide.

After you add the members, use SearchTransitGatewayMulticastGroups to verify that the members were added to the transit gateway multicast group.

", "RegisterTransitGatewayMulticastGroupSources": "

Registers sources (network interfaces) with the specified transit gateway multicast group.

A multicast source is a network interface attached to a supported instance that sends multicast traffic. For more information about supported instances, see Multicast on transit gateways in the Amazon Web Services Transit Gateways Guide.

After you add the source, use SearchTransitGatewayMulticastGroups to verify that the source was added to the multicast group.

", @@ -13048,6 +13048,7 @@ "IpamPoolId": { "base": null, "refs": { + "AllocateAddressRequest$IpamPoolId": "

The ID of an IPAM pool.

", "AllocateIpamPoolCidrRequest$IpamPoolId": "

The ID of the IPAM pool from which you would like to allocate a CIDR.

", "AssociateSubnetCidrBlockRequest$Ipv6IpamPoolId": "

An IPv6 IPAM pool ID.

", "AssociateVpcCidrBlockRequest$Ipv4IpamPoolId": "

Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

", diff --git a/apis/internetmonitor/2021-06-03/api-2.json b/apis/internetmonitor/2021-06-03/api-2.json index 39fc6ba8420..fa029286d23 100644 --- a/apis/internetmonitor/2021-06-03/api-2.json +++ b/apis/internetmonitor/2021-06-03/api-2.json @@ -2,9 +2,10 @@ "version":"2.0", "metadata":{ "apiVersion":"2021-06-03", + "auth":["aws.auth#sigv4"], "endpointPrefix":"internetmonitor", - "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceFullName":"Amazon CloudWatch Internet Monitor", "serviceId":"InternetMonitor", "signatureVersion":"v4", @@ -1128,7 +1129,9 @@ "enum":[ "MEASUREMENTS", "TOP_LOCATIONS", - "TOP_LOCATION_DETAILS" + "TOP_LOCATION_DETAILS", + "OVERALL_TRAFFIC_SUGGESTIONS", + "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" ] }, "ResourceName":{ diff --git a/apis/internetmonitor/2021-06-03/docs-2.json b/apis/internetmonitor/2021-06-03/docs-2.json index 7d5f060973e..91a5af881c5 100644 --- a/apis/internetmonitor/2021-06-03/docs-2.json +++ b/apis/internetmonitor/2021-06-03/docs-2.json @@ -522,7 +522,7 @@ "QueryType": { "base": null, "refs": { - "StartQueryInput$QueryType": "

The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

For lists of the fields returned with each query type and more information about how each type of query is performed, see Using the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

" + "StartQueryInput$QueryType": "

The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

For lists of the fields returned with each query type and more information about how each type of query is performed, see Using the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

" } }, "ResourceName": { diff --git a/apis/pcs/2023-02-10/api-2.json b/apis/pcs/2023-02-10/api-2.json new file mode 100644 index 00000000000..06a9deb848b --- /dev/null +++ b/apis/pcs/2023-02-10/api-2.json @@ -0,0 +1,1344 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-02-10", + "auth":["aws.auth#sigv4"], + "endpointPrefix":"pcs", + "jsonVersion":"1.0", + "protocol":"json", + "protocols":["json"], + "serviceFullName":"AWS Parallel Computing Service", + "serviceId":"PCS", + "signatureVersion":"v4", + "signingName":"pcs", + "targetPrefix":"AWSParallelComputingService", + "uid":"pcs-2023-02-10" + }, + "operations":{ + "CreateCluster":{ + "name":"CreateCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterRequest"}, + "output":{"shape":"CreateClusterResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "CreateComputeNodeGroup":{ + "name":"CreateComputeNodeGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateComputeNodeGroupRequest"}, + "output":{"shape":"CreateComputeNodeGroupResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "CreateQueue":{ + "name":"CreateQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateQueueRequest"}, + "output":{"shape":"CreateQueueResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "DeleteCluster":{ + "name":"DeleteCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterRequest"}, + "output":{"shape":"DeleteClusterResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "DeleteComputeNodeGroup":{ + "name":"DeleteComputeNodeGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteComputeNodeGroupRequest"}, + "output":{"shape":"DeleteComputeNodeGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "DeleteQueue":{ + "name":"DeleteQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteQueueRequest"}, + "output":{"shape":"DeleteQueueResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "GetCluster":{ + "name":"GetCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetClusterRequest"}, + "output":{"shape":"GetClusterResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "GetComputeNodeGroup":{ + "name":"GetComputeNodeGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetComputeNodeGroupRequest"}, + "output":{"shape":"GetComputeNodeGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "GetQueue":{ + "name":"GetQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetQueueRequest"}, + "output":{"shape":"GetQueueResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListClusters":{ + "name":"ListClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListClustersRequest"}, + "output":{"shape":"ListClustersResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListComputeNodeGroups":{ + "name":"ListComputeNodeGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComputeNodeGroupsRequest"}, + "output":{"shape":"ListComputeNodeGroupsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListQueues":{ + "name":"ListQueues", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListQueuesRequest"}, + "output":{"shape":"ListQueuesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "RegisterComputeNodeGroupInstance":{ + "name":"RegisterComputeNodeGroupInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterComputeNodeGroupInstanceRequest"}, + "output":{"shape":"RegisterComputeNodeGroupInstanceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "UpdateComputeNodeGroup":{ + "name":"UpdateComputeNodeGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateComputeNodeGroupRequest"}, + "output":{"shape":"UpdateComputeNodeGroupResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "UpdateQueue":{ + "name":"UpdateQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateQueueRequest"}, + "output":{"shape":"UpdateQueueResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "AmiId":{ + "type":"string", + "pattern":"ami-[a-z0-9]+" + }, + "Arn":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"arn:aws*:pcs:.*:[0-9]{12}:.*/[a-z0-9_\\-]+" + }, + "BootstrapId":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[\\S]+" + }, + "Cluster":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "status", + "createdAt", + "modifiedAt", + "scheduler", + "size", + "networking" + ], + "members":{ + "name":{"shape":"String"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "status":{"shape":"ClusterStatus"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "scheduler":{"shape":"Scheduler"}, + "size":{"shape":"Size"}, + "slurmConfiguration":{"shape":"ClusterSlurmConfiguration"}, + "networking":{"shape":"Networking"}, + "endpoints":{"shape":"Endpoints"}, + "errorInfo":{"shape":"ErrorInfoList"} + } + }, + "ClusterIdentifier":{ + "type":"string", + "pattern":"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,40})" + }, + "ClusterList":{ + "type":"list", + "member":{"shape":"ClusterSummary"} + }, + "ClusterName":{ + "type":"string", + "max":40, + "min":1, + "pattern":"(?!pcs_)^(?![A-Za-z0-9]{10}$)[A-Za-z][A-Za-z0-9-]+" + }, + "ClusterSlurmConfiguration":{ + "type":"structure", + "members":{ + "scaleDownIdleTimeInSeconds":{"shape":"ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger"}, + "slurmCustomSettings":{"shape":"SlurmCustomSettings"}, + "authKey":{"shape":"SlurmAuthKey"} + } + }, + "ClusterSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "scaleDownIdleTimeInSeconds":{"shape":"ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger"}, + "slurmCustomSettings":{"shape":"SlurmCustomSettings"} + } + }, + "ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "ClusterStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ] + }, + "ClusterSummary":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "createdAt", + "modifiedAt", + "status" + ], + "members":{ + "name":{"shape":"String"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "status":{"shape":"ClusterStatus"} + } + }, + "ComputeNodeGroup":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "clusterId", + "createdAt", + "modifiedAt", + "status", + "subnetIds", + "customLaunchTemplate", + "iamInstanceProfileArn", + "scalingConfiguration", + "instanceConfigs" + ], + "members":{ + "name":{"shape":"ComputeNodeGroupName"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "clusterId":{"shape":"String"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "status":{"shape":"ComputeNodeGroupStatus"}, + "amiId":{"shape":"AmiId"}, + "subnetIds":{"shape":"SubnetIdList"}, + "purchaseOption":{"shape":"PurchaseOption"}, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "iamInstanceProfileArn":{"shape":"InstanceProfileArn"}, + "scalingConfiguration":{"shape":"ScalingConfiguration"}, + "instanceConfigs":{"shape":"InstanceList"}, + "spotOptions":{"shape":"SpotOptions"}, + "slurmConfiguration":{"shape":"ComputeNodeGroupSlurmConfiguration"}, + "errorInfo":{"shape":"ErrorInfoList"} + } + }, + "ComputeNodeGroupConfiguration":{ + "type":"structure", + "members":{ + "computeNodeGroupId":{"shape":"String"} + } + }, + "ComputeNodeGroupConfigurationList":{ + "type":"list", + "member":{"shape":"ComputeNodeGroupConfiguration"} + }, + "ComputeNodeGroupIdentifier":{ + "type":"string", + "pattern":"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,25})" + }, + "ComputeNodeGroupList":{ + "type":"list", + "member":{"shape":"ComputeNodeGroupSummary"} + }, + "ComputeNodeGroupName":{ + "type":"string", + "max":25, + "min":1, + "pattern":"(?!pcs_)^(?![A-Za-z0-9]{10}$)[A-Za-z][A-Za-z0-9-]+" + }, + "ComputeNodeGroupSlurmConfiguration":{ + "type":"structure", + "members":{ + "slurmCustomSettings":{"shape":"SlurmCustomSettings"} + } + }, + "ComputeNodeGroupSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "slurmCustomSettings":{"shape":"SlurmCustomSettings"} + } + }, + "ComputeNodeGroupStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED", + "DELETED" + ] + }, + "ComputeNodeGroupSummary":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "clusterId", + "createdAt", + "modifiedAt", + "status" + ], + "members":{ + "name":{"shape":"ComputeNodeGroupName"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "clusterId":{"shape":"String"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "status":{"shape":"ComputeNodeGroupStatus"} + } + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "exception":true + }, + "CreateClusterRequest":{ + "type":"structure", + "required":[ + "clusterName", + "scheduler", + "size", + "networking" + ], + "members":{ + "clusterName":{"shape":"ClusterName"}, + "scheduler":{"shape":"SchedulerRequest"}, + "size":{"shape":"Size"}, + "networking":{"shape":"NetworkingRequest"}, + "slurmConfiguration":{"shape":"ClusterSlurmConfigurationRequest"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + }, + "tags":{"shape":"RequestTagMap"} + } + }, + "CreateClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, + "CreateComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupName", + "subnetIds", + "customLaunchTemplate", + "iamInstanceProfileArn", + "scalingConfiguration", + "instanceConfigs" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "computeNodeGroupName":{"shape":"ComputeNodeGroupName"}, + "amiId":{"shape":"AmiId"}, + "subnetIds":{"shape":"StringList"}, + "purchaseOption":{"shape":"PurchaseOption"}, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "iamInstanceProfileArn":{"shape":"InstanceProfileArn"}, + "scalingConfiguration":{"shape":"ScalingConfigurationRequest"}, + "instanceConfigs":{"shape":"InstanceList"}, + "spotOptions":{"shape":"SpotOptions"}, + "slurmConfiguration":{"shape":"ComputeNodeGroupSlurmConfigurationRequest"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + }, + "tags":{"shape":"RequestTagMap"} + } + }, + "CreateComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "CreateQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueName" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "queueName":{"shape":"QueueName"}, + "computeNodeGroupConfigurations":{"shape":"ComputeNodeGroupConfigurationList"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + }, + "tags":{"shape":"RequestTagMap"} + } + }, + "CreateQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "CustomLaunchTemplate":{ + "type":"structure", + "required":[ + "id", + "version" + ], + "members":{ + "id":{"shape":"String"}, + "version":{"shape":"String"} + } + }, + "DeleteClusterRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + } + } + }, + "DeleteClusterResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "computeNodeGroupIdentifier":{"shape":"ComputeNodeGroupIdentifier"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + } + } + }, + "DeleteComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "queueIdentifier":{"shape":"QueueIdentifier"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + } + } + }, + "DeleteQueueResponse":{ + "type":"structure", + "members":{ + } + }, + "Endpoint":{ + "type":"structure", + "required":[ + "type", + "privateIpAddress", + "port" + ], + "members":{ + "type":{"shape":"EndpointType"}, + "privateIpAddress":{"shape":"String"}, + "publicIpAddress":{"shape":"String"}, + "port":{"shape":"String"} + } + }, + "EndpointType":{ + "type":"string", + "enum":[ + "SLURMCTLD", + "SLURMDBD" + ] + }, + "Endpoints":{ + "type":"list", + "member":{"shape":"Endpoint"} + }, + "ErrorInfo":{ + "type":"structure", + "members":{ + "code":{"shape":"String"}, + "message":{"shape":"String"} + } + }, + "ErrorInfoList":{ + "type":"list", + "member":{"shape":"ErrorInfo"} + }, + "GetClusterRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"} + } + }, + "GetClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, + "GetComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "computeNodeGroupIdentifier":{"shape":"ComputeNodeGroupIdentifier"} + } + }, + "GetComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "GetQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "queueIdentifier":{"shape":"QueueIdentifier"} + } + }, + "GetQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "InstanceConfig":{ + "type":"structure", + "members":{ + "instanceType":{"shape":"String"} + } + }, + "InstanceList":{ + "type":"list", + "member":{"shape":"InstanceConfig"} + }, + "InstanceProfileArn":{ + "type":"string", + "pattern":"arn:aws([a-zA-Z-]{0,10})?:iam::[0-9]{12}:instance-profile/.{1,128}" + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListClustersRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListClustersResponse":{ + "type":"structure", + "required":["clusters"], + "members":{ + "clusters":{"shape":"ClusterList"}, + "nextToken":{"shape":"String"} + } + }, + "ListComputeNodeGroupsRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListComputeNodeGroupsResponse":{ + "type":"structure", + "required":["computeNodeGroups"], + "members":{ + "computeNodeGroups":{"shape":"ComputeNodeGroupList"}, + "nextToken":{"shape":"String"} + } + }, + "ListQueuesRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListQueuesResponse":{ + "type":"structure", + "required":["queues"], + "members":{ + "queues":{"shape":"QueueList"}, + "nextToken":{"shape":"String"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{"shape":"Arn"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"ResponseTagMap"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "Networking":{ + "type":"structure", + "members":{ + "subnetIds":{"shape":"SubnetIdList"}, + "securityGroupIds":{"shape":"SecurityGroupIdList"} + } + }, + "NetworkingRequest":{ + "type":"structure", + "members":{ + "subnetIds":{"shape":"SubnetIdList"}, + "securityGroupIds":{"shape":"SecurityGroupIdList"} + } + }, + "PurchaseOption":{ + "type":"string", + "enum":[ + "ONDEMAND", + "SPOT" + ] + }, + "Queue":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "clusterId", + "createdAt", + "modifiedAt", + "status", + "computeNodeGroupConfigurations" + ], + "members":{ + "name":{"shape":"QueueName"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "clusterId":{"shape":"String"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "status":{"shape":"QueueStatus"}, + "computeNodeGroupConfigurations":{"shape":"ComputeNodeGroupConfigurationList"}, + "errorInfo":{"shape":"ErrorInfoList"} + } + }, + "QueueIdentifier":{ + "type":"string", + "pattern":"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,25})" + }, + "QueueList":{ + "type":"list", + "member":{"shape":"QueueSummary"} + }, + "QueueName":{ + "type":"string", + "max":25, + "min":1, + "pattern":"(?!pcs_)^(?![A-Za-z0-9]{10}$)[A-Za-z][A-Za-z0-9-]+" + }, + "QueueStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ] + }, + "QueueSummary":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "clusterId", + "createdAt", + "modifiedAt", + "status" + ], + "members":{ + "name":{"shape":"QueueName"}, + "id":{"shape":"String"}, + "arn":{"shape":"String"}, + "clusterId":{"shape":"String"}, + "createdAt":{"shape":"SyntheticTimestamp_date_time"}, + "modifiedAt":{"shape":"SyntheticTimestamp_date_time"}, + "status":{"shape":"QueueStatus"} + } + }, + "RegisterComputeNodeGroupInstanceRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "bootstrapId" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "bootstrapId":{"shape":"BootstrapId"} + } + }, + "RegisterComputeNodeGroupInstanceResponse":{ + "type":"structure", + "required":[ + "nodeID", + "sharedSecret", + "endpoints" + ], + "members":{ + "nodeID":{"shape":"String"}, + "sharedSecret":{"shape":"SharedSecret"}, + "endpoints":{"shape":"Endpoints"} + } + }, + "RequestTagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "exception":true + }, + "ResponseTagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "SBClientToken":{ + "type":"string", + "max":100, + "min":8 + }, + "ScalingConfiguration":{ + "type":"structure", + "required":[ + "minInstanceCount", + "maxInstanceCount" + ], + "members":{ + "minInstanceCount":{"shape":"ScalingConfigurationMinInstanceCountInteger"}, + "maxInstanceCount":{"shape":"ScalingConfigurationMaxInstanceCountInteger"} + } + }, + "ScalingConfigurationMaxInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationMinInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationRequest":{ + "type":"structure", + "required":[ + "minInstanceCount", + "maxInstanceCount" + ], + "members":{ + "minInstanceCount":{"shape":"ScalingConfigurationRequestMinInstanceCountInteger"}, + "maxInstanceCount":{"shape":"ScalingConfigurationRequestMaxInstanceCountInteger"} + } + }, + "ScalingConfigurationRequestMaxInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationRequestMinInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "Scheduler":{ + "type":"structure", + "required":[ + "type", + "version" + ], + "members":{ + "type":{"shape":"SchedulerType"}, + "version":{"shape":"String"} + } + }, + "SchedulerRequest":{ + "type":"structure", + "required":[ + "type", + "version" + ], + "members":{ + "type":{"shape":"SchedulerType"}, + "version":{"shape":"String"} + } + }, + "SchedulerType":{ + "type":"string", + "enum":["SLURM"] + }, + "SecurityGroupId":{ + "type":"string", + "pattern":"sg-\\w{8,17}" + }, + "SecurityGroupIdList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"} + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "serviceCode":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"}, + "quotaCode":{"shape":"String"} + }, + "exception":true + }, + "SharedSecret":{ + "type":"string", + "sensitive":true + }, + "Size":{ + "type":"string", + "enum":[ + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "SlurmAuthKey":{ + "type":"structure", + "required":[ + "secretArn", + "secretVersion" + ], + "members":{ + "secretArn":{"shape":"String"}, + "secretVersion":{"shape":"String"} + } + }, + "SlurmCustomSetting":{ + "type":"structure", + "required":[ + "parameterName", + "parameterValue" + ], + "members":{ + "parameterName":{"shape":"String"}, + "parameterValue":{"shape":"String"} + } + }, + "SlurmCustomSettings":{ + "type":"list", + "member":{"shape":"SlurmCustomSetting"} + }, + "SpotAllocationStrategy":{ + "type":"string", + "enum":[ + "lowest-price", + "capacity-optimized", + "price-capacity-optimized" + ] + }, + "SpotOptions":{ + "type":"structure", + "members":{ + "allocationStrategy":{"shape":"SpotAllocationStrategy"} + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SubnetId":{ + "type":"string", + "pattern":"subnet-\\w{8,17}" + }, + "SubnetIdList":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "min":1 + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{"shape":"Arn"}, + "tags":{"shape":"RequestTagMap"} + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{"shape":"Integer"} + }, + "exception":true, + "retryable":{"throttling":false} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{"shape":"Arn"}, + "tagKeys":{"shape":"TagKeys"} + } + }, + "UpdateComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "computeNodeGroupIdentifier":{"shape":"ComputeNodeGroupIdentifier"}, + "amiId":{"shape":"AmiId"}, + "subnetIds":{"shape":"StringList"}, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "purchaseOption":{"shape":"PurchaseOption"}, + "spotOptions":{"shape":"SpotOptions"}, + "scalingConfiguration":{"shape":"ScalingConfigurationRequest"}, + "iamInstanceProfileArn":{"shape":"InstanceProfileArn"}, + "slurmConfiguration":{"shape":"UpdateComputeNodeGroupSlurmConfigurationRequest"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + } + } + }, + "UpdateComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "UpdateComputeNodeGroupSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "slurmCustomSettings":{"shape":"SlurmCustomSettings"} + } + }, + "UpdateQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{"shape":"ClusterIdentifier"}, + "queueIdentifier":{"shape":"QueueIdentifier"}, + "computeNodeGroupConfigurations":{"shape":"ComputeNodeGroupConfigurationList"}, + "clientToken":{ + "shape":"SBClientToken", + "idempotencyToken":true + } + } + }, + "UpdateQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{"shape":"ValidationExceptionReason"}, + "fieldList":{"shape":"ValidationExceptionFieldList"} + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{"shape":"String"}, + "message":{"shape":"String"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + } + } +} diff --git a/apis/pcs/2023-02-10/docs-2.json b/apis/pcs/2023-02-10/docs-2.json new file mode 100644 index 00000000000..64b9ae3e27c --- /dev/null +++ b/apis/pcs/2023-02-10/docs-2.json @@ -0,0 +1,827 @@ +{ + "version": "2.0", + "service": "

Amazon Web Services Parallel Computing Service (Amazon Web Services PCS) is a managed service that makes it easier for you to run and scale your high performance computing (HPC) workloads, and build scientific and engineering models on Amazon Web Services using Slurm. For more information, see the Amazon Web Services Parallel Computing Service User Guide.

This reference describes the actions and data types of the service management API. You can use the Amazon Web Services SDKs to call the API actions in software, or use the Command Line Interface (CLI) to call the API actions manually. These API actions manage the service through an Amazon Web Services account.

The API actions operate on Amazon Web Services PCS resources. A resource is an entity in Amazon Web Services that you can work with. Amazon Web Services services create resources when you use the features of the service. Examples of Amazon Web Services PCS resources include clusters, compute node groups, and queues. For more information about resources in Amazon Web Services, see Resource in the Resource Explorer User Guide.

An Amazon Web Services PCS compute node is an Amazon EC2 instance. You don't launch compute nodes directly. Amazon Web Services PCS uses configuration information that you provide to launch compute nodes in your Amazon Web Services account. You receive billing charges for your running compute nodes. Amazon Web Services PCS automatically terminates your compute nodes when you delete the Amazon Web Services PCS resources related to those compute nodes.

", + "operations": { + "CreateCluster": "

Creates a cluster in your account. Amazon Web Services PCS creates the cluster controller in a service-owned account. The cluster controller communicates with the cluster resources in your account. The subnets and security groups for the cluster must already exist before you use this API action.

It takes time for Amazon Web Services PCS to create the cluster. The cluster is in a Creating state until it is ready to use. There can only be 1 cluster in a Creating state per Amazon Web Services Region per Amazon Web Services account. CreateCluster fails with a ServiceQuotaExceededException if there is already a cluster in a Creating state.

", + "CreateComputeNodeGroup": "

Creates a managed set of compute nodes. You associate a compute node group with a cluster through 1 or more Amazon Web Services PCS queues or as part of the login fleet. A compute node group includes the definition of the compute properties and lifecycle management. Amazon Web Services PCS uses the information you provide to this API action to launch compute nodes in your account. You can only specify subnets in the same Amazon VPC as your cluster. You receive billing charges for the compute nodes that Amazon Web Services PCS launches in your account. You must already have a launch template before you call this API. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide for Linux Instances.

", + "CreateQueue": "

Creates a job queue. You must associate 1 or more compute node groups with the queue. You can associate 1 compute node group with multiple queues.

", + "DeleteCluster": "

Deletes a cluster and all its linked resources. You must delete all queues and compute node groups associated with the cluster before you can delete the cluster.

", + "DeleteComputeNodeGroup": "

Deletes a compute node group. You must delete all queues associated with the compute node group first.

", + "DeleteQueue": "

Deletes a job queue. If the compute node group associated with this queue isn't associated with any other queues, Amazon Web Services PCS terminates all the compute nodes for this queue.

", + "GetCluster": "

Returns detailed information about a running cluster in your account. This API action provides networking information, endpoint information for communication with the scheduler, and provisioning status.

", + "GetComputeNodeGroup": "

Returns detailed information about a compute node group. This API action provides networking information, EC2 instance type, compute node group status, and scheduler (such as Slurm) configuration.

", + "GetQueue": "

Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.

", + "ListClusters": "

Returns a list of running clusters in your account.

", + "ListComputeNodeGroups": "

Returns a list of all compute node groups associated with a cluster.

", + "ListQueues": "

Returns a list of all queues associated with a cluster.

", + "ListTagsForResource": "

Returns a list of all tags on an Amazon Web Services PCS resource.

", + "RegisterComputeNodeGroupInstance": "

This API action isn't intended for you to use.

Amazon Web Services PCS uses this API action to register the compute nodes it launches in your account.

", + "TagResource": "

Adds or edits tags on an Amazon Web Services PCS resource. Each tag consists of a tag key and a tag value. The tag key and tag value are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

", + "UntagResource": "

Deletes tags from an Amazon Web Services PCS resource. To delete a tag, specify the tag key and the Amazon Resource Name (ARN) of the Amazon Web Services PCS resource.

", + "UpdateComputeNodeGroup": "

Updates a compute node group. You can update many of the fields related to your compute node group including the configurations for networking, compute nodes, and settings specific to your scheduler (such as Slurm).

", + "UpdateQueue": "

Updates the compute node group configuration of a queue. Use this API to change the compute node groups that the queue can send jobs to.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You don't have permission to perform the action.

Examples

", + "refs": { + } + }, + "AmiId": { + "base": null, + "refs": { + "ComputeNodeGroup$amiId": "

The ID of the Amazon Machine Image (AMI) that Amazon Web Services PCS uses to launch instances. If not provided, Amazon Web Services PCS uses the AMI ID specified in the custom launch template.

", + "CreateComputeNodeGroupRequest$amiId": "

The ID of the Amazon Machine Image (AMI) that Amazon Web Services PCS uses to launch compute nodes (Amazon EC2 instances). If you don't provide this value, Amazon Web Services PCS uses the AMI ID specified in the custom launch template.

", + "UpdateComputeNodeGroupRequest$amiId": "

The ID of the Amazon Machine Image (AMI) that Amazon Web Services PCS uses to launch instances. If not provided, Amazon Web Services PCS uses the AMI ID specified in the custom launch template.

" + } + }, + "Arn": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource for which to list tags.

", + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "BootstrapId": { + "base": null, + "refs": { + "RegisterComputeNodeGroupInstanceRequest$bootstrapId": "

The client-generated token to allow for retries.

" + } + }, + "Cluster": { + "base": "

The cluster resource and configuration.

", + "refs": { + "CreateClusterResponse$cluster": "

The cluster resource.

", + "GetClusterResponse$cluster": "

The cluster resource.

" + } + }, + "ClusterIdentifier": { + "base": null, + "refs": { + "CreateComputeNodeGroupRequest$clusterIdentifier": "

The name or ID of the cluster to create a compute node group in.

", + "CreateQueueRequest$clusterIdentifier": "

The name or ID of the cluster for which to create a queue.

", + "DeleteClusterRequest$clusterIdentifier": "

The name or ID of the cluster to delete.

", + "DeleteComputeNodeGroupRequest$clusterIdentifier": "

The name or ID of the cluster of the compute node group.

", + "DeleteQueueRequest$clusterIdentifier": "

The name or ID of the cluster of the queue.

", + "GetClusterRequest$clusterIdentifier": "

The name or ID of the cluster of the queue.

", + "GetComputeNodeGroupRequest$clusterIdentifier": "

The name or ID of the cluster.

", + "GetQueueRequest$clusterIdentifier": "

The name or ID of the cluster of the queue.

", + "ListComputeNodeGroupsRequest$clusterIdentifier": "

The name or ID of the cluster to list compute node groups for.

", + "ListQueuesRequest$clusterIdentifier": "

The name or ID of the cluster to list queues for.

", + "RegisterComputeNodeGroupInstanceRequest$clusterIdentifier": "

The name or ID of the cluster to register the compute node group instance in.

", + "UpdateComputeNodeGroupRequest$clusterIdentifier": "

The name or ID of the cluster of the compute node group.

", + "UpdateQueueRequest$clusterIdentifier": "

The name or ID of the cluster of the queue.

" + } + }, + "ClusterList": { + "base": null, + "refs": { + "ListClustersResponse$clusters": "

The list of clusters.

" + } + }, + "ClusterName": { + "base": null, + "refs": { + "CreateClusterRequest$clusterName": "

A name to identify the cluster. Example: MyCluster

" + } + }, + "ClusterSlurmConfiguration": { + "base": "

Additional options related to the Slurm scheduler.

", + "refs": { + "Cluster$slurmConfiguration": "

Additional options related to the Slurm scheduler.

" + } + }, + "ClusterSlurmConfigurationRequest": { + "base": "

Additional options related to the Slurm scheduler.

", + "refs": { + "CreateClusterRequest$slurmConfiguration": "

Additional options related to the Slurm scheduler.

" + } + }, + "ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger": { + "base": null, + "refs": { + "ClusterSlurmConfigurationRequest$scaleDownIdleTimeInSeconds": "

The time before an idle node is scaled down.

" + } + }, + "ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger": { + "base": null, + "refs": { + "ClusterSlurmConfiguration$scaleDownIdleTimeInSeconds": "

The time before an idle node is scaled down.

" + } + }, + "ClusterStatus": { + "base": null, + "refs": { + "Cluster$status": "

The provisioning status of the cluster.

The provisioning status doesn't indicate the overall health of the cluster.

", + "ClusterSummary$status": "

The provisioning status of the cluster.

The provisioning status doesn't indicate the overall health of the cluster.

" + } + }, + "ClusterSummary": { + "base": "

The object returned by the ListClusters API action.

", + "refs": { + "ClusterList$member": null + } + }, + "ComputeNodeGroup": { + "base": "

A compute node group associated with a cluster.

", + "refs": { + "CreateComputeNodeGroupResponse$computeNodeGroup": null, + "GetComputeNodeGroupResponse$computeNodeGroup": null, + "UpdateComputeNodeGroupResponse$computeNodeGroup": null + } + }, + "ComputeNodeGroupConfiguration": { + "base": "

The compute node group configuration for a queue.

", + "refs": { + "ComputeNodeGroupConfigurationList$member": null + } + }, + "ComputeNodeGroupConfigurationList": { + "base": null, + "refs": { + "CreateQueueRequest$computeNodeGroupConfigurations": "

The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

", + "Queue$computeNodeGroupConfigurations": "

The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.

", + "UpdateQueueRequest$computeNodeGroupConfigurations": "

The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

" + } + }, + "ComputeNodeGroupIdentifier": { + "base": null, + "refs": { + "DeleteComputeNodeGroupRequest$computeNodeGroupIdentifier": "

The name or ID of the compute node group to delete.

", + "GetComputeNodeGroupRequest$computeNodeGroupIdentifier": "

The name or ID of the compute node group.

", + "UpdateComputeNodeGroupRequest$computeNodeGroupIdentifier": "

The name or ID of the compute node group.

" + } + }, + "ComputeNodeGroupList": { + "base": null, + "refs": { + "ListComputeNodeGroupsResponse$computeNodeGroups": "

The list of compute node groups for the cluster.

" + } + }, + "ComputeNodeGroupName": { + "base": null, + "refs": { + "ComputeNodeGroup$name": "

The name that identifies the compute node group.

", + "ComputeNodeGroupSummary$name": "

The name that identifies the compute node group.

", + "CreateComputeNodeGroupRequest$computeNodeGroupName": "

A name to identify the cluster. Example: MyCluster

" + } + }, + "ComputeNodeGroupSlurmConfiguration": { + "base": "

Additional options related to the Slurm scheduler.

", + "refs": { + "ComputeNodeGroup$slurmConfiguration": null + } + }, + "ComputeNodeGroupSlurmConfigurationRequest": { + "base": "

Additional options related to the Slurm scheduler.

", + "refs": { + "CreateComputeNodeGroupRequest$slurmConfiguration": "

Additional options related to the Slurm scheduler.

" + } + }, + "ComputeNodeGroupStatus": { + "base": null, + "refs": { + "ComputeNodeGroup$status": "

The provisioning status of the compute node group.

The provisioning status doesn't indicate the overall health of the compute node group.

", + "ComputeNodeGroupSummary$status": "

The provisioning status of the compute node group.

The provisioning status doesn't indicate the overall health of the compute node group.

" + } + }, + "ComputeNodeGroupSummary": { + "base": "

The object returned by the ListComputeNodeGroups API action.

", + "refs": { + "ComputeNodeGroupList$member": null + } + }, + "ConflictException": { + "base": "

Your request has conflicting operations. This can occur if you're trying to perform more than 1 operation on the same resource at the same time.

Examples

", + "refs": { + } + }, + "CreateClusterRequest": { + "base": null, + "refs": { + } + }, + "CreateClusterResponse": { + "base": null, + "refs": { + } + }, + "CreateComputeNodeGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateComputeNodeGroupResponse": { + "base": null, + "refs": { + } + }, + "CreateQueueRequest": { + "base": null, + "refs": { + } + }, + "CreateQueueResponse": { + "base": null, + "refs": { + } + }, + "CustomLaunchTemplate": { + "base": "

An Amazon EC2 launch template Amazon Web Services PCS uses to launch compute nodes.

", + "refs": { + "ComputeNodeGroup$customLaunchTemplate": null, + "CreateComputeNodeGroupRequest$customLaunchTemplate": null, + "UpdateComputeNodeGroupRequest$customLaunchTemplate": null + } + }, + "DeleteClusterRequest": { + "base": null, + "refs": { + } + }, + "DeleteClusterResponse": { + "base": null, + "refs": { + } + }, + "DeleteComputeNodeGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteComputeNodeGroupResponse": { + "base": null, + "refs": { + } + }, + "DeleteQueueRequest": { + "base": null, + "refs": { + } + }, + "DeleteQueueResponse": { + "base": null, + "refs": { + } + }, + "Endpoint": { + "base": "

An endpoint available for interaction with the scheduler.

", + "refs": { + "Endpoints$member": null + } + }, + "EndpointType": { + "base": null, + "refs": { + "Endpoint$type": "

Indicates the type of endpoint running at the specific IP address.

" + } + }, + "Endpoints": { + "base": null, + "refs": { + "Cluster$endpoints": "

The list of endpoints available for interaction with the scheduler.

", + "RegisterComputeNodeGroupInstanceResponse$endpoints": "

The list of endpoints available for interaction with the scheduler.

" + } + }, + "ErrorInfo": { + "base": "

An error that occurred during resource creation.

", + "refs": { + "ErrorInfoList$member": null + } + }, + "ErrorInfoList": { + "base": null, + "refs": { + "Cluster$errorInfo": "

The list of errors that occurred during cluster provisioning.

", + "ComputeNodeGroup$errorInfo": "

The list of errors that occurred during compute node group provisioning.

", + "Queue$errorInfo": "

The list of errors that occurred during queue provisioning.

" + } + }, + "GetClusterRequest": { + "base": null, + "refs": { + } + }, + "GetClusterResponse": { + "base": null, + "refs": { + } + }, + "GetComputeNodeGroupRequest": { + "base": null, + "refs": { + } + }, + "GetComputeNodeGroupResponse": { + "base": null, + "refs": { + } + }, + "GetQueueRequest": { + "base": null, + "refs": { + } + }, + "GetQueueResponse": { + "base": null, + "refs": { + } + }, + "InstanceConfig": { + "base": "

An EC2 instance configuration Amazon Web Services PCS uses to launch compute nodes.

", + "refs": { + "InstanceList$member": null + } + }, + "InstanceList": { + "base": null, + "refs": { + "ComputeNodeGroup$instanceConfigs": "

A list of EC2 instance configurations that Amazon Web Services PCS can provision in the compute node group.

", + "CreateComputeNodeGroupRequest$instanceConfigs": "

A list of EC2 instance configurations that Amazon Web Services PCS can provision in the compute node group.

" + } + }, + "InstanceProfileArn": { + "base": null, + "refs": { + "ComputeNodeGroup$iamInstanceProfileArn": "

The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.

", + "CreateComputeNodeGroupRequest$iamInstanceProfileArn": "

The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached in order to provision instances correctly. The resource identifier of the ARN must start with AWSPCS. For example, arn:aws:iam:123456789012:instance-profile/AWSPCSMyComputeNodeInstanceProfile.

", + "UpdateComputeNodeGroupRequest$iamInstanceProfileArn": "

The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.

" + } + }, + "Integer": { + "base": null, + "refs": { + "ThrottlingException$retryAfterSeconds": "

The number of seconds to wait before retrying the request.

" + } + }, + "InternalServerException": { + "base": "

Amazon Web Services PCS can't process your request right now. Try again later.

", + "refs": { + } + }, + "ListClustersRequest": { + "base": null, + "refs": { + } + }, + "ListClustersResponse": { + "base": null, + "refs": { + } + }, + "ListComputeNodeGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListComputeNodeGroupsResponse": { + "base": null, + "refs": { + } + }, + "ListQueuesRequest": { + "base": null, + "refs": { + } + }, + "ListQueuesResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListClustersRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

", + "ListComputeNodeGroupsRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

", + "ListQueuesRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default.

" + } + }, + "Networking": { + "base": "

The networking configuration for the cluster's control plane.

", + "refs": { + "Cluster$networking": null + } + }, + "NetworkingRequest": { + "base": "

The networking configuration for the cluster's control plane.

", + "refs": { + "CreateClusterRequest$networking": "

The networking configuration used to set up the cluster's control plane.

" + } + }, + "PurchaseOption": { + "base": null, + "refs": { + "ComputeNodeGroup$purchaseOption": "

Specifies how EC2 instances are purchased on your behalf. Amazon Web Services PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.

", + "CreateComputeNodeGroupRequest$purchaseOption": "

Specifies how EC2 instances are purchased on your behalf. Amazon Web Services PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.

", + "UpdateComputeNodeGroupRequest$purchaseOption": "

Specifies how EC2 instances are purchased on your behalf. Amazon Web Services PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.

" + } + }, + "Queue": { + "base": "

A queue resource.

", + "refs": { + "CreateQueueResponse$queue": null, + "GetQueueResponse$queue": null, + "UpdateQueueResponse$queue": null + } + }, + "QueueIdentifier": { + "base": null, + "refs": { + "DeleteQueueRequest$queueIdentifier": "

The name or ID of the queue to delete.

", + "GetQueueRequest$queueIdentifier": "

The name or ID of the queue.

", + "UpdateQueueRequest$queueIdentifier": "

The name or ID of the queue.

" + } + }, + "QueueList": { + "base": null, + "refs": { + "ListQueuesResponse$queues": "

The list of queues associated with the cluster.

" + } + }, + "QueueName": { + "base": null, + "refs": { + "CreateQueueRequest$queueName": "

A name to identify the queue.

", + "Queue$name": "

The name that identifies the queue.

", + "QueueSummary$name": "

The name that identifies the queue.

" + } + }, + "QueueStatus": { + "base": null, + "refs": { + "Queue$status": "

The provisioning status of the queue.

The provisioning status doesn't indicate the overall health of the queue.

", + "QueueSummary$status": "

The provisioning status of the queue.

The provisioning status doesn't indicate the overall health of the queue.

" + } + }, + "QueueSummary": { + "base": "

The object returned by the ListQueues API action.

", + "refs": { + "QueueList$member": null + } + }, + "RegisterComputeNodeGroupInstanceRequest": { + "base": null, + "refs": { + } + }, + "RegisterComputeNodeGroupInstanceResponse": { + "base": null, + "refs": { + } + }, + "RequestTagMap": { + "base": null, + "refs": { + "CreateClusterRequest$tags": "

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

", + "CreateComputeNodeGroupRequest$tags": "

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

", + "CreateQueueRequest$tags": "

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

", + "TagResourceRequest$tags": "

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

" + } + }, + "ResourceNotFoundException": { + "base": "

The requested resource can't be found. The cluster, node group, or queue you're attempting to get, update, list, or delete doesn't exist.

Examples

", + "refs": { + } + }, + "ResponseTagMap": { + "base": null, + "refs": { + "ListTagsForResourceResponse$tags": "

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

" + } + }, + "SBClientToken": { + "base": null, + "refs": { + "CreateClusterRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "CreateComputeNodeGroupRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "CreateQueueRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "DeleteClusterRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "DeleteComputeNodeGroupRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "DeleteQueueRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "UpdateComputeNodeGroupRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

", + "UpdateQueueRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

" + } + }, + "ScalingConfiguration": { + "base": "

Specifies the boundaries of the compute node group auto scaling.

", + "refs": { + "ComputeNodeGroup$scalingConfiguration": null + } + }, + "ScalingConfigurationMaxInstanceCountInteger": { + "base": null, + "refs": { + "ScalingConfiguration$maxInstanceCount": "

The upper bound of the number of instances allowed in the compute fleet.

" + } + }, + "ScalingConfigurationMinInstanceCountInteger": { + "base": null, + "refs": { + "ScalingConfiguration$minInstanceCount": "

The lower bound of the number of instances allowed in the compute fleet.

" + } + }, + "ScalingConfigurationRequest": { + "base": "

Specifies the boundaries of the compute node group auto scaling.

", + "refs": { + "CreateComputeNodeGroupRequest$scalingConfiguration": "

Specifies the boundaries of the compute node group auto scaling.

", + "UpdateComputeNodeGroupRequest$scalingConfiguration": "

Specifies the boundaries of the compute node group auto scaling.

" + } + }, + "ScalingConfigurationRequestMaxInstanceCountInteger": { + "base": null, + "refs": { + "ScalingConfigurationRequest$maxInstanceCount": "

The upper bound of the number of instances allowed in the compute fleet.

" + } + }, + "ScalingConfigurationRequestMinInstanceCountInteger": { + "base": null, + "refs": { + "ScalingConfigurationRequest$minInstanceCount": "

The lower bound of the number of instances allowed in the compute fleet.

" + } + }, + "Scheduler": { + "base": "

The cluster management and job scheduling software associated with the cluster.

", + "refs": { + "Cluster$scheduler": null + } + }, + "SchedulerRequest": { + "base": "

The cluster management and job scheduling software associated with the cluster.

", + "refs": { + "CreateClusterRequest$scheduler": "

The cluster management and job scheduling software associated with the cluster.

" + } + }, + "SchedulerType": { + "base": null, + "refs": { + "Scheduler$type": "

The software Amazon Web Services PCS uses to manage cluster scaling and job scheduling.

", + "SchedulerRequest$type": "

The software Amazon Web Services PCS uses to manage cluster scaling and job scheduling.

" + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIdList$member": null + } + }, + "SecurityGroupIdList": { + "base": null, + "refs": { + "Networking$securityGroupIds": "

The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.

The following rules are required:

", + "NetworkingRequest$securityGroupIds": "

A list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

You exceeded your service quota. Service quotas, also referred to as limits, are the maximum number of service resources or operations for your Amazon Web Services account. To learn how to increase your service quota, see Requesting a quota increase in the Service Quotas User Guide

Examples

", + "refs": { + } + }, + "SharedSecret": { + "base": null, + "refs": { + "RegisterComputeNodeGroupInstanceResponse$sharedSecret": "

For the Slurm scheduler, this is the shared Munge key the scheduler uses to authenticate compute node group instances.

" + } + }, + "Size": { + "base": null, + "refs": { + "Cluster$size": "

The size of the cluster.

", + "CreateClusterRequest$size": "

A value that determines the maximum number of compute nodes in the cluster and the maximum number of jobs (active and queued).

" + } + }, + "SlurmAuthKey": { + "base": "

The shared Slurm key for authentication, also known as the cluster secret.

", + "refs": { + "ClusterSlurmConfiguration$authKey": "

The shared Slurm key for authentication, also known as the cluster secret.

" + } + }, + "SlurmCustomSetting": { + "base": "

Additional settings that directly map to Slurm settings.

", + "refs": { + "SlurmCustomSettings$member": null + } + }, + "SlurmCustomSettings": { + "base": null, + "refs": { + "ClusterSlurmConfiguration$slurmCustomSettings": "

Additional Slurm-specific configuration that directly maps to Slurm settings.

", + "ClusterSlurmConfigurationRequest$slurmCustomSettings": "

Additional Slurm-specific configuration that directly maps to Slurm settings.

", + "ComputeNodeGroupSlurmConfiguration$slurmCustomSettings": "

Additional Slurm-specific configuration that directly maps to Slurm settings.

", + "ComputeNodeGroupSlurmConfigurationRequest$slurmCustomSettings": "

Additional Slurm-specific configuration that directly maps to Slurm settings.

", + "UpdateComputeNodeGroupSlurmConfigurationRequest$slurmCustomSettings": "

Additional Slurm-specific configuration that directly maps to Slurm settings.

" + } + }, + "SpotAllocationStrategy": { + "base": null, + "refs": { + "SpotOptions$allocationStrategy": "

The Amazon EC2 allocation strategy Amazon Web Services PCS uses to provision EC2 instances. Amazon Web Services PCS supports lowest price, capacity optimized, and price capacity optimized. For more information, see Use allocation strategies to determine how EC2 Fleet or Spot Fleet fulfills Spot and On-Demand capacity in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to price capacity optimized.

" + } + }, + "SpotOptions": { + "base": "

Additional configuration when you specify SPOT as the purchaseOption for the CreateComputeNodeGroup API action.

", + "refs": { + "ComputeNodeGroup$spotOptions": null, + "CreateComputeNodeGroupRequest$spotOptions": null, + "UpdateComputeNodeGroupRequest$spotOptions": null + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "Cluster$name": "

The name that identifies the cluster.

", + "Cluster$id": "

The generated unique ID of the cluster.

", + "Cluster$arn": "

The unique Amazon Resource Name (ARN) of the cluster.

", + "ClusterSummary$name": "

The name that identifies the cluster.

", + "ClusterSummary$id": "

The generated unique ID of the cluster.

", + "ClusterSummary$arn": "

The unique Amazon Resource Name (ARN) of the cluster.

", + "ComputeNodeGroup$id": "

The generated unique ID of the compute node group.

", + "ComputeNodeGroup$arn": "

The unique Amazon Resource Name (ARN) of the compute node group.

", + "ComputeNodeGroup$clusterId": "

The ID of the cluster of the compute node group.

", + "ComputeNodeGroupConfiguration$computeNodeGroupId": "

The compute node group ID for the compute node group configuration.

", + "ComputeNodeGroupSummary$id": "

The generated unique ID of the compute node group.

", + "ComputeNodeGroupSummary$arn": "

The unique Amazon Resource Name (ARN) of the compute node group.

", + "ComputeNodeGroupSummary$clusterId": "

The ID of the cluster of the compute node group.

", + "ConflictException$message": null, + "ConflictException$resourceId": "

The unique identifier of the resource that caused the conflict exception.

", + "ConflictException$resourceType": "

The type or category of the resource that caused the conflict exception.\"

", + "CustomLaunchTemplate$id": "

The ID of the EC2 launch template to use to provision instances.

Example: lt-xxxx

", + "CustomLaunchTemplate$version": "

The version of the EC2 launch template to use to provision instances.

", + "Endpoint$privateIpAddress": "

The endpoint's private IP address.

Example: 2.2.2.2

", + "Endpoint$publicIpAddress": "

The endpoint's public IP address.

Example: 1.1.1.1

", + "Endpoint$port": "

The endpoint's connection port number.

Example: 1234

", + "ErrorInfo$code": "

The short-form error code.

", + "ErrorInfo$message": "

The detailed error information.

", + "InstanceConfig$instanceType": "

The EC2 instance type that Amazon Web Services PCS can provision in the compute node group.

Example: t2.xlarge

", + "InternalServerException$message": null, + "ListClustersRequest$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "ListClustersResponse$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "ListComputeNodeGroupsRequest$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "ListComputeNodeGroupsResponse$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "ListQueuesRequest$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "ListQueuesResponse$nextToken": "

The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error.

", + "Queue$id": "

The generated unique ID of the queue.

", + "Queue$arn": "

The unique Amazon Resource Name (ARN) of the queue.

", + "Queue$clusterId": "

The ID of the cluster of the queue.

", + "QueueSummary$id": "

The generated unique ID of the queue.

", + "QueueSummary$arn": "

The unique Amazon Resource Name (ARN) of the queue.

", + "QueueSummary$clusterId": "

The ID of the cluster of the queue.

", + "RegisterComputeNodeGroupInstanceResponse$nodeID": "

The scheduler node ID for this instance.

", + "ResourceNotFoundException$message": null, + "ResourceNotFoundException$resourceId": "

The unique identifier of the resource that was not found.

", + "ResourceNotFoundException$resourceType": "

The type or category of the resource that was not found.

", + "Scheduler$version": "

The version of the specified scheduling software that Amazon Web Services PCS uses to manage cluster scaling and job scheduling.

", + "SchedulerRequest$version": "

The version of the specified scheduling software that Amazon Web Services PCS uses to manage cluster scaling and job scheduling.

", + "ServiceQuotaExceededException$message": null, + "ServiceQuotaExceededException$serviceCode": "

The service code associated with the quota that was exceeded.

", + "ServiceQuotaExceededException$resourceId": "

The unique identifier of the resource that caused the quota to be exceeded.

", + "ServiceQuotaExceededException$resourceType": "

The type or category of the resource that caused the quota to be exceeded.

", + "ServiceQuotaExceededException$quotaCode": "

The quota code of the service quota that was exceeded.

", + "SlurmAuthKey$secretArn": "

The Amazon Resource Name (ARN) of the the shared Slurm key.

", + "SlurmAuthKey$secretVersion": "

The version of the shared Slurm key.

", + "SlurmCustomSetting$parameterName": "

Amazon Web Services PCS supports configuration of the following Slurm parameters: Prolog , Epilog , and SelectTypeParameters .

", + "SlurmCustomSetting$parameterValue": "

The values for the configured Slurm settings.

", + "StringList$member": null, + "ThrottlingException$message": null, + "ValidationException$message": null, + "ValidationExceptionField$name": "

The name of the exception.

", + "ValidationExceptionField$message": "

The message body of the exception.

" + } + }, + "StringList": { + "base": null, + "refs": { + "CreateComputeNodeGroupRequest$subnetIds": "

The list of subnet IDs where the compute node group launches instances. Subnets must be in the same VPC as the cluster.

", + "UpdateComputeNodeGroupRequest$subnetIds": "

The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIdList$member": null + } + }, + "SubnetIdList": { + "base": null, + "refs": { + "ComputeNodeGroup$subnetIds": "

The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.

", + "Networking$subnetIds": "

The ID of the subnet where Amazon Web Services PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and Amazon Web Services PCS resources. The subnet must have an available IP address, cannot reside in AWS Outposts, AWS Wavelength, or an AWS Local Zone.

Example: subnet-abcd1234

", + "NetworkingRequest$subnetIds": "

The list of subnet IDs where Amazon Web Services PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and Amazon Web Services PCS resources. Subnet IDs have the form subnet-0123456789abcdef0.

Subnets can't be in Outposts, Wavelength or an Amazon Web Services Local Zone.

Amazon Web Services PCS currently supports only 1 subnet in this list.

" + } + }, + "SyntheticTimestamp_date_time": { + "base": null, + "refs": { + "Cluster$createdAt": "

The date and time the resource was created.

", + "Cluster$modifiedAt": "

The date and time the resource was modified.

", + "ClusterSummary$createdAt": "

The date and time the resource was created.

", + "ClusterSummary$modifiedAt": "

The date and time the resource was modified.

", + "ComputeNodeGroup$createdAt": "

The date and time the resource was created.

", + "ComputeNodeGroup$modifiedAt": "

The date and time the resource was modified.

", + "ComputeNodeGroupSummary$createdAt": "

The date and time the resource was created.

", + "ComputeNodeGroupSummary$modifiedAt": "

The date and time the resource was modified.

", + "Queue$createdAt": "

The date and time the resource was created.

", + "Queue$modifiedAt": "

The date and time the resource was modified.

", + "QueueSummary$createdAt": "

The date and time the resource was created.

", + "QueueSummary$modifiedAt": "

The date and time the resource was modified.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "RequestTagMap$key": null, + "ResponseTagMap$key": null, + "TagKeys$member": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

1 or more tag keys to remove from the resource. Specify only tag keys and not tag values.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "RequestTagMap$value": null, + "ResponseTagMap$value": null + } + }, + "ThrottlingException": { + "base": "

Your request exceeded a request rate quota. Check the resource's request rate quota and try again.

", + "refs": { + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateComputeNodeGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateComputeNodeGroupResponse": { + "base": null, + "refs": { + } + }, + "UpdateComputeNodeGroupSlurmConfigurationRequest": { + "base": "

Additional options related to the Slurm scheduler.

", + "refs": { + "UpdateComputeNodeGroupRequest$slurmConfiguration": "

Additional options related to the Slurm scheduler.

" + } + }, + "UpdateQueueRequest": { + "base": null, + "refs": { + } + }, + "UpdateQueueResponse": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

The request isn't valid.

Examples

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Stores information about a field in a request that caused an exception.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$fieldList": "

A list of fields or properties that failed validation.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The specific reason or cause of the validation error.

" + } + } + } +} diff --git a/apis/pcs/2023-02-10/endpoint-rule-set-1.json b/apis/pcs/2023-02-10/endpoint-rule-set-1.json new file mode 100644 index 00000000000..4da2239d23d --- /dev/null +++ b/apis/pcs/2023-02-10/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pcs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pcs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pcs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pcs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/apis/pcs/2023-02-10/endpoint-tests-1.json b/apis/pcs/2023-02-10/endpoint-tests-1.json new file mode 100644 index 00000000000..579a85f57a2 --- /dev/null +++ b/apis/pcs/2023-02-10/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pcs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/apis/pcs/2023-02-10/examples-1.json b/apis/pcs/2023-02-10/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/apis/pcs/2023-02-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/apis/pcs/2023-02-10/paginators-1.json b/apis/pcs/2023-02-10/paginators-1.json new file mode 100644 index 00000000000..555a266b316 --- /dev/null +++ b/apis/pcs/2023-02-10/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListClusters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "clusters" + }, + "ListComputeNodeGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "computeNodeGroups" + }, + "ListQueues": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "queues" + } + } +} diff --git a/apis/pcs/2023-02-10/waiters-2.json b/apis/pcs/2023-02-10/waiters-2.json new file mode 100644 index 00000000000..13f60ee66be --- /dev/null +++ b/apis/pcs/2023-02-10/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/apis/workspaces/2015-04-08/docs-2.json b/apis/workspaces/2015-04-08/docs-2.json index 6293ee851bf..5e31fce5bd3 100644 --- a/apis/workspaces/2015-04-08/docs-2.json +++ b/apis/workspaces/2015-04-08/docs-2.json @@ -77,9 +77,9 @@ "RejectAccountLinkInvitation": "

Rejects the account link invitation.

", "RestoreWorkspace": "

Restores the specified WorkSpace to its last known healthy state.

You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, or STOPPED.

Restoring a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Restore a WorkSpace.

This operation is asynchronous and returns before the WorkSpace is completely restored.

", "RevokeIpRules": "

Removes one or more rules from the specified IP access control group.

", - "StartWorkspaces": "

Starts the specified WorkSpaces.

You cannot start a WorkSpace unless it has a running mode of AutoStop and a state of STOPPED.

", + "StartWorkspaces": "

Starts the specified WorkSpaces.

You cannot start a WorkSpace unless it has a running mode of AutoStop or Manual and a state of STOPPED.

", "StartWorkspacesPool": "

Starts the specified pool.

You cannot start a pool unless it has a running mode of AutoStop and a state of STOPPED.

", - "StopWorkspaces": "

Stops the specified WorkSpaces.

You cannot stop a WorkSpace unless it has a running mode of AutoStop and a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.

", + "StopWorkspaces": "

Stops the specified WorkSpaces.

You cannot stop a WorkSpace unless it has a running mode of AutoStop or Manual and a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.

", "StopWorkspacesPool": "

Stops the specified pool.

You cannot stop a WorkSpace pool unless it has a running mode of AutoStop and a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.

", "TerminateWorkspaces": "

Terminates the specified WorkSpaces.

Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is destroyed. If you need to archive any user data, contact Amazon Web Services Support before terminating the WorkSpace.

You can terminate a WorkSpace that is in any state except SUSPENDED.

This operation is asynchronous and returns before the WorkSpaces have been completely terminated. After a WorkSpace is terminated, the TERMINATED state is returned only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has been successfully terminated.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the Directory Service pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", "TerminateWorkspacesPool": "

Terminates the specified pool.

", @@ -3214,7 +3214,7 @@ "refs": { "DescribeWorkspacesRequest$WorkspaceName": "

The name of the user-decoupled WorkSpace.

", "Workspace$WorkspaceName": "

The name of the user-decoupled WorkSpace.

", - "WorkspaceRequest$WorkspaceName": "

The name of the user-decoupled WorkSpace.

" + "WorkspaceRequest$WorkspaceName": "

The name of the user-decoupled WorkSpace.

WorkspaceName is required if UserName is [UNDEFINED] for user-decoupled WorkSpaces. WorkspaceName is not applicable if UserName is specified for user-assigned WorkSpaces.

" } }, "WorkspaceProperties": { diff --git a/gems/aws-partitions/CHANGELOG.md b/gems/aws-partitions/CHANGELOG.md index 4d5a8f7d16f..dc83776f203 100644 --- a/gems/aws-partitions/CHANGELOG.md +++ b/gems/aws-partitions/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.969.0 (2024-08-28) +------------------ + +* Feature - Added support for enumerating regions for `Aws::PCS`. + 1.968.0 (2024-08-22) ------------------ diff --git a/gems/aws-partitions/VERSION b/gems/aws-partitions/VERSION index 3e926a797e6..13ec0e03067 100644 --- a/gems/aws-partitions/VERSION +++ b/gems/aws-partitions/VERSION @@ -1 +1 @@ -1.968.0 +1.969.0 diff --git a/gems/aws-partitions/lib/aws-partitions.rb b/gems/aws-partitions/lib/aws-partitions.rb index bcb22136766..12b64e5c73d 100644 --- a/gems/aws-partitions/lib/aws-partitions.rb +++ b/gems/aws-partitions/lib/aws-partitions.rb @@ -510,6 +510,7 @@ def service_ids 'OpsWorksCM' => 'opsworks-cm', 'Organizations' => 'organizations', 'Outposts' => 'outposts', + 'PCS' => 'pcs', 'PI' => 'pi', 'Panorama' => 'panorama', 'PaymentCryptography' => 'controlplane.payment-cryptography', diff --git a/gems/aws-partitions/partitions.json b/gems/aws-partitions/partitions.json index 40440aed297..1f468912dec 100644 --- a/gems/aws-partitions/partitions.json +++ b/gems/aws-partitions/partitions.json @@ -15458,6 +15458,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com", @@ -19707,8 +19708,18 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "synthetics-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "synthetics-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -19717,6 +19728,20 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "synthetics-fips.ca-central-1.amazonaws.com" + }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "synthetics-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" diff --git a/gems/aws-sdk-appconfig/CHANGELOG.md b/gems/aws-sdk-appconfig/CHANGELOG.md index 231ae2ffc72..6a14699caf4 100644 --- a/gems/aws-sdk-appconfig/CHANGELOG.md +++ b/gems/aws-sdk-appconfig/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.52.0 (2024-08-28) +------------------ + +* Feature - This release adds support for deletion protection, which is a safety guardrail to prevent the unintentional deletion of a recently used AWS AppConfig Configuration Profile or Environment. This also includes a change to increase the maximum length of the Name parameter in UpdateConfigurationProfile. + 1.51.0 (2024-07-02) ------------------ diff --git a/gems/aws-sdk-appconfig/VERSION b/gems/aws-sdk-appconfig/VERSION index ba0a719118c..a63cb35e6f0 100644 --- a/gems/aws-sdk-appconfig/VERSION +++ b/gems/aws-sdk-appconfig/VERSION @@ -1 +1 @@ -1.51.0 +1.52.0 diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig.rb index 0856449d3e2..65768d8d7c4 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig.rb @@ -52,6 +52,6 @@ # @!group service module Aws::AppConfig - GEM_VERSION = '1.51.0' + GEM_VERSION = '1.52.0' end diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client.rb index 570602a6be5..a868f580d1d 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client.rb @@ -1108,7 +1108,14 @@ def create_extension_association(params = {}, options = {}) end # Creates a new configuration in the AppConfig hosted configuration - # store. + # store. If you're creating a feature flag, we recommend you + # familiarize yourself with the JSON schema for feature flag data. For + # more information, see [Type reference for + # AWS.AppConfig.FeatureFlags][1] in the *AppConfig User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-feature-flags.html#appconfig-type-reference-feature-flags # # @option params [required, String] :application_id # The application ID. @@ -1120,7 +1127,12 @@ def create_extension_association(params = {}, options = {}) # A description of the configuration. # # @option params [required, String, StringIO, File] :content - # The content of the configuration or the configuration data. + # The configuration data, as bytes. + # + # AppConfig accepts any type of data, including text formats like JSON + # or TOML, or binary formats like protocol buffers or compressed data. + # + # # # @option params [required, String] :content_type # A standard MIME type describing the format of the configuration @@ -1207,8 +1219,7 @@ def create_hosted_configuration_version(params = {}, options = {}) req.send_request(options) end - # Deletes an application. Deleting an application does not delete a - # configuration from a host. + # Deletes an application. # # @option params [required, String] :application_id # The ID of the application to delete. @@ -1239,8 +1250,14 @@ def delete_application(params = {}, options = {}) req.send_request(options) end - # Deletes a configuration profile. Deleting a configuration profile does - # not delete a configuration from a host. + # Deletes a configuration profile. + # + # To prevent users from unintentionally deleting actively-used + # configuration profiles, enable [deletion protection][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html # # @option params [required, String] :application_id # The application ID that includes the configuration profile you want to @@ -1249,6 +1266,32 @@ def delete_application(params = {}, options = {}) # @option params [required, String] :configuration_profile_id # The ID of the configuration profile you want to delete. # + # @option params [String] :deletion_protection_check + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile if + # your application has called either [GetLatestConfiguration][1] or for + # the configuration profile during the specified interval. + # + # This parameter supports the following values: + # + # * `BYPASS`: Instructs AppConfig to bypass the deletion protection + # check and delete a configuration profile even if deletion protection + # would have otherwise prevented it. + # + # * `APPLY`: Instructs the deletion protection check to run, even if + # deletion protection is disabled at the account level. `APPLY` also + # forces the deletion protection check to run against resources + # created in the past hour, which are normally excluded from deletion + # protection checks. + # + # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig to + # implement the deletion protection value specified in the + # `UpdateAccountSettings` API. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @@ -1266,6 +1309,7 @@ def delete_application(params = {}, options = {}) # resp = client.delete_configuration_profile({ # application_id: "Id", # required # configuration_profile_id: "Id", # required + # deletion_protection_check: "ACCOUNT_DEFAULT", # accepts ACCOUNT_DEFAULT, APPLY, BYPASS # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfile AWS API Documentation @@ -1277,8 +1321,7 @@ def delete_configuration_profile(params = {}, options = {}) req.send_request(options) end - # Deletes a deployment strategy. Deleting a deployment strategy does not - # delete a configuration from a host. + # Deletes a deployment strategy. # # @option params [required, String] :deployment_strategy_id # The ID of the deployment strategy you want to delete. @@ -1309,15 +1352,47 @@ def delete_deployment_strategy(params = {}, options = {}) req.send_request(options) end - # Deletes an environment. Deleting an environment does not delete a - # configuration from a host. + # Deletes an environment. + # + # To prevent users from unintentionally deleting actively-used + # environments, enable [deletion protection][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html + # + # @option params [required, String] :environment_id + # The ID of the environment that you want to delete. # # @option params [required, String] :application_id # The application ID that includes the environment that you want to # delete. # - # @option params [required, String] :environment_id - # The ID of the environment that you want to delete. + # @option params [String] :deletion_protection_check + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting an environment if your + # application called either [GetLatestConfiguration][1] or in the + # environment during the specified interval. + # + # This parameter supports the following values: + # + # * `BYPASS`: Instructs AppConfig to bypass the deletion protection + # check and delete a configuration profile even if deletion protection + # would have otherwise prevented it. + # + # * `APPLY`: Instructs the deletion protection check to run, even if + # deletion protection is disabled at the account level. `APPLY` also + # forces the deletion protection check to run against resources + # created in the past hour, which are normally excluded from deletion + # protection checks. + # + # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig to + # implement the deletion protection value specified in the + # `UpdateAccountSettings` API. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # @@ -1334,8 +1409,9 @@ def delete_deployment_strategy(params = {}, options = {}) # @example Request syntax with placeholder values # # resp = client.delete_environment({ - # application_id: "Id", # required # environment_id: "Id", # required + # application_id: "Id", # required + # deletion_protection_check: "ACCOUNT_DEFAULT", # accepts ACCOUNT_DEFAULT, APPLY, BYPASS # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironment AWS API Documentation @@ -1442,6 +1518,27 @@ def delete_hosted_configuration_version(params = {}, options = {}) req.send_request(options) end + # Returns information about the status of the `DeletionProtection` + # parameter. + # + # @return [Types::AccountSettings] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AccountSettings#deletion_protection #deletion_protection} => Types::DeletionProtectionSettings + # + # @example Response structure + # + # resp.deletion_protection.enabled #=> Boolean + # resp.deletion_protection.protection_period_in_minutes #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetAccountSettings AWS API Documentation + # + # @overload get_account_settings(params = {}) + # @param [Hash] params ({}) + def get_account_settings(params = {}, options = {}) + req = build_request(:get_account_settings, params) + req.send_request(options) + end + # Retrieves information about an application. # # @option params [required, String] :application_id @@ -1497,7 +1594,7 @@ def get_application(params = {}, options = {}) # should use the [StartConfigurationSession][1] and # [GetLatestConfiguration][2] APIs instead. # - # * `GetConfiguration` is a priced call. For more information, see + # * GetConfiguration is a priced call. For more information, see # [Pricing][3]. # # @@ -1525,24 +1622,24 @@ def get_application(params = {}, options = {}) # defined in the deployment strategy. # # @option params [String] :client_configuration_version - # The configuration version returned in the most recent - # `GetConfiguration` response. + # The configuration version returned in the most recent GetConfiguration + # response. # # AppConfig uses the value of the `ClientConfigurationVersion` parameter # to identify the configuration version on your clients. If you don’t - # send `ClientConfigurationVersion` with each call to - # `GetConfiguration`, your clients receive the current configuration. - # You are charged each time your clients receive a configuration. + # send `ClientConfigurationVersion` with each call to GetConfiguration, + # your clients receive the current configuration. You are charged each + # time your clients receive a configuration. # # To avoid excess charges, we recommend you use the # [StartConfigurationSession][1] and [GetLatestConfiguration][2] APIs, # which track the client configuration version on your behalf. If you - # choose to continue using `GetConfiguration`, we recommend that you + # choose to continue using GetConfiguration, we recommend that you # include the `ClientConfigurationVersion` value with every call to - # `GetConfiguration`. The value to use for `ClientConfigurationVersion` + # GetConfiguration. The value to use for `ClientConfigurationVersion` # comes from the `ConfigurationVersion` attribute returned by - # `GetConfiguration` when there is new or updated data, and should be - # saved for subsequent calls to `GetConfiguration`. + # GetConfiguration when there is new or updated data, and should be + # saved for subsequent calls to GetConfiguration. # # For more information about working with configurations, see # [Retrieving the Configuration][3] in the *AppConfig User Guide*. @@ -3155,6 +3252,47 @@ def untag_resource(params = {}, options = {}) req.send_request(options) end + # Updates the value of the `DeletionProtection` parameter. + # + # @option params [Types::DeletionProtectionSettings] :deletion_protection + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile or an + # environment if AppConfig has called either [GetLatestConfiguration][1] + # or for the configuration profile or from the environment during the + # specified interval. Deletion protection is disabled by default. The + # default interval for `ProtectionPeriodInMinutes` is 60. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # + # @return [Types::AccountSettings] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AccountSettings#deletion_protection #deletion_protection} => Types::DeletionProtectionSettings + # + # @example Request syntax with placeholder values + # + # resp = client.update_account_settings({ + # deletion_protection: { + # enabled: false, + # protection_period_in_minutes: 1, + # }, + # }) + # + # @example Response structure + # + # resp.deletion_protection.enabled #=> Boolean + # resp.deletion_protection.protection_period_in_minutes #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateAccountSettings AWS API Documentation + # + # @overload update_account_settings(params = {}) + # @param [Hash] params ({}) + def update_account_settings(params = {}, options = {}) + req = build_request(:update_account_settings, params) + req.send_request(options) + end + # Updates an application. # # @option params [required, String] :application_id @@ -3282,7 +3420,7 @@ def update_application(params = {}, options = {}) # resp = client.update_configuration_profile({ # application_id: "Id", # required # configuration_profile_id: "Id", # required - # name: "Name", + # name: "LongName", # description: "Description", # retrieval_role_arn: "RoleArn", # validators: [ @@ -3702,7 +3840,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-appconfig' - context[:gem_version] = '1.51.0' + context[:gem_version] = '1.52.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client_api.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client_api.rb index 55896745487..37091e948d8 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client_api.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/client_api.rb @@ -13,6 +13,7 @@ module ClientApi include Seahorse::Model + AccountSettings = Shapes::StructureShape.new(name: 'AccountSettings') Action = Shapes::StructureShape.new(name: 'Action') ActionInvocation = Shapes::StructureShape.new(name: 'ActionInvocation') ActionInvocations = Shapes::ListShape.new(name: 'ActionInvocations') @@ -52,6 +53,9 @@ module ClientApi DeleteExtensionAssociationRequest = Shapes::StructureShape.new(name: 'DeleteExtensionAssociationRequest') DeleteExtensionRequest = Shapes::StructureShape.new(name: 'DeleteExtensionRequest') DeleteHostedConfigurationVersionRequest = Shapes::StructureShape.new(name: 'DeleteHostedConfigurationVersionRequest') + DeletionProtectionCheck = Shapes::StringShape.new(name: 'DeletionProtectionCheck') + DeletionProtectionDuration = Shapes::IntegerShape.new(name: 'DeletionProtectionDuration') + DeletionProtectionSettings = Shapes::StructureShape.new(name: 'DeletionProtectionSettings') Deployment = Shapes::StructureShape.new(name: 'Deployment') DeploymentEvent = Shapes::StructureShape.new(name: 'DeploymentEvent') DeploymentEventType = Shapes::StringShape.new(name: 'DeploymentEventType') @@ -146,6 +150,7 @@ module ClientApi TagValue = Shapes::StringShape.new(name: 'TagValue') TriggeredBy = Shapes::StringShape.new(name: 'TriggeredBy') UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') + UpdateAccountSettingsRequest = Shapes::StructureShape.new(name: 'UpdateAccountSettingsRequest') UpdateApplicationRequest = Shapes::StructureShape.new(name: 'UpdateApplicationRequest') UpdateConfigurationProfileRequest = Shapes::StructureShape.new(name: 'UpdateConfigurationProfileRequest') UpdateDeploymentStrategyRequest = Shapes::StructureShape.new(name: 'UpdateDeploymentStrategyRequest') @@ -161,6 +166,9 @@ module ClientApi Version = Shapes::StringShape.new(name: 'Version') VersionLabel = Shapes::StringShape.new(name: 'VersionLabel') + AccountSettings.add_member(:deletion_protection, Shapes::ShapeRef.new(shape: DeletionProtectionSettings, location_name: "DeletionProtection")) + AccountSettings.struct_class = Types::AccountSettings + Action.add_member(:name, Shapes::ShapeRef.new(shape: Name, location_name: "Name")) Action.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description")) Action.add_member(:uri, Shapes::ShapeRef.new(shape: Uri, location_name: "Uri")) @@ -313,13 +321,15 @@ module ClientApi DeleteConfigurationProfileRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId")) DeleteConfigurationProfileRequest.add_member(:configuration_profile_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ConfigurationProfileId")) + DeleteConfigurationProfileRequest.add_member(:deletion_protection_check, Shapes::ShapeRef.new(shape: DeletionProtectionCheck, location: "header", location_name: "x-amzn-deletion-protection-check")) DeleteConfigurationProfileRequest.struct_class = Types::DeleteConfigurationProfileRequest DeleteDeploymentStrategyRequest.add_member(:deployment_strategy_id, Shapes::ShapeRef.new(shape: DeploymentStrategyId, required: true, location: "uri", location_name: "DeploymentStrategyId")) DeleteDeploymentStrategyRequest.struct_class = Types::DeleteDeploymentStrategyRequest - DeleteEnvironmentRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId")) DeleteEnvironmentRequest.add_member(:environment_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "EnvironmentId")) + DeleteEnvironmentRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId")) + DeleteEnvironmentRequest.add_member(:deletion_protection_check, Shapes::ShapeRef.new(shape: DeletionProtectionCheck, location: "header", location_name: "x-amzn-deletion-protection-check")) DeleteEnvironmentRequest.struct_class = Types::DeleteEnvironmentRequest DeleteExtensionAssociationRequest.add_member(:extension_association_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ExtensionAssociationId")) @@ -334,6 +344,10 @@ module ClientApi DeleteHostedConfigurationVersionRequest.add_member(:version_number, Shapes::ShapeRef.new(shape: Integer, required: true, location: "uri", location_name: "VersionNumber")) DeleteHostedConfigurationVersionRequest.struct_class = Types::DeleteHostedConfigurationVersionRequest + DeletionProtectionSettings.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled", metadata: {"box"=>true})) + DeletionProtectionSettings.add_member(:protection_period_in_minutes, Shapes::ShapeRef.new(shape: DeletionProtectionDuration, location_name: "ProtectionPeriodInMinutes", metadata: {"box"=>true})) + DeletionProtectionSettings.struct_class = Types::DeletionProtectionSettings + Deployment.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, location_name: "ApplicationId")) Deployment.add_member(:environment_id, Shapes::ShapeRef.new(shape: Id, location_name: "EnvironmentId")) Deployment.add_member(:deployment_strategy_id, Shapes::ShapeRef.new(shape: Id, location_name: "DeploymentStrategyId")) @@ -647,6 +661,9 @@ module ClientApi UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location: "querystring", location_name: "tagKeys")) UntagResourceRequest.struct_class = Types::UntagResourceRequest + UpdateAccountSettingsRequest.add_member(:deletion_protection, Shapes::ShapeRef.new(shape: DeletionProtectionSettings, location_name: "DeletionProtection")) + UpdateAccountSettingsRequest.struct_class = Types::UpdateAccountSettingsRequest + UpdateApplicationRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId")) UpdateApplicationRequest.add_member(:name, Shapes::ShapeRef.new(shape: Name, location_name: "Name")) UpdateApplicationRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description")) @@ -654,7 +671,7 @@ module ClientApi UpdateConfigurationProfileRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId")) UpdateConfigurationProfileRequest.add_member(:configuration_profile_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ConfigurationProfileId")) - UpdateConfigurationProfileRequest.add_member(:name, Shapes::ShapeRef.new(shape: Name, location_name: "Name")) + UpdateConfigurationProfileRequest.add_member(:name, Shapes::ShapeRef.new(shape: LongName, location_name: "Name")) UpdateConfigurationProfileRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description")) UpdateConfigurationProfileRequest.add_member(:retrieval_role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "RetrievalRoleArn")) UpdateConfigurationProfileRequest.add_member(:validators, Shapes::ShapeRef.new(shape: ValidatorList, location_name: "Validators")) @@ -884,6 +901,16 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InternalServerException) end) + api.add_operation(:get_account_settings, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetAccountSettings" + o.http_method = "GET" + o.http_request_uri = "/settings" + o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure)) + o.output = Shapes::ShapeRef.new(shape: AccountSettings) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + end) + api.add_operation(:get_application, Seahorse::Model::Operation.new.tap do |o| o.name = "GetApplication" o.http_method = "GET" @@ -1172,6 +1199,16 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InternalServerException) end) + api.add_operation(:update_account_settings, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdateAccountSettings" + o.http_method = "PATCH" + o.http_request_uri = "/settings" + o.input = Shapes::ShapeRef.new(shape: UpdateAccountSettingsRequest) + o.output = Shapes::ShapeRef.new(shape: AccountSettings) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:update_application, Seahorse::Model::Operation.new.tap do |o| o.name = "UpdateApplication" o.http_method = "PATCH" diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/endpoints.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/endpoints.rb index a60742c0496..8f4811ece12 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/endpoints.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/endpoints.rb @@ -208,6 +208,20 @@ def self.build(context) end end + class GetAccountSettings + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::AppConfig::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + class GetApplication def self.build(context) unless context.config.regional_endpoint @@ -516,6 +530,20 @@ def self.build(context) end end + class UpdateAccountSettings + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::AppConfig::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + class UpdateApplication def self.build(context) unless context.config.regional_endpoint diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/plugins/endpoints.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/plugins/endpoints.rb index aa54672f515..0b32b261b7e 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/plugins/endpoints.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/plugins/endpoints.rb @@ -86,6 +86,8 @@ def parameters_for_operation(context) Aws::AppConfig::Endpoints::DeleteExtensionAssociation.build(context) when :delete_hosted_configuration_version Aws::AppConfig::Endpoints::DeleteHostedConfigurationVersion.build(context) + when :get_account_settings + Aws::AppConfig::Endpoints::GetAccountSettings.build(context) when :get_application Aws::AppConfig::Endpoints::GetApplication.build(context) when :get_configuration @@ -130,6 +132,8 @@ def parameters_for_operation(context) Aws::AppConfig::Endpoints::TagResource.build(context) when :untag_resource Aws::AppConfig::Endpoints::UntagResource.build(context) + when :update_account_settings + Aws::AppConfig::Endpoints::UpdateAccountSettings.build(context) when :update_application Aws::AppConfig::Endpoints::UpdateApplication.build(context) when :update_configuration_profile diff --git a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/types.rb b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/types.rb index 79d291c0898..9a52f122d36 100644 --- a/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/types.rb +++ b/gems/aws-sdk-appconfig/lib/aws-sdk-appconfig/types.rb @@ -10,6 +10,28 @@ module Aws::AppConfig module Types + # @!attribute [rw] deletion_protection + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile or + # an environment if AppConfig has called either + # [GetLatestConfiguration][1] or for the configuration profile or from + # the environment during the specified interval. Deletion protection + # is disabled by default. The default interval for + # `ProtectionPeriodInMinutes` is 60. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # @return [Types::DeletionProtectionSettings] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/AccountSettings AWS API Documentation + # + class AccountSettings < Struct.new( + :deletion_protection) + SENSITIVE = [] + include Aws::Structure + end + # An action defines the tasks that the extension performs during the # AppConfig workflow. Each action includes an action point such as # `ON_CREATE_HOSTED_CONFIGURATION`, `PRE_DEPLOYMENT`, or @@ -753,7 +775,12 @@ class CreateExtensionRequest < Struct.new( # @return [String] # # @!attribute [rw] content - # The content of the configuration or the configuration data. + # The configuration data, as bytes. + # + # AppConfig accepts any type of data, including text formats like JSON + # or TOML, or binary formats like protocol buffers or compressed data. + # + # # @return [String] # # @!attribute [rw] content_type @@ -814,11 +841,39 @@ class DeleteApplicationRequest < Struct.new( # The ID of the configuration profile you want to delete. # @return [String] # + # @!attribute [rw] deletion_protection_check + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile if + # your application has called either [GetLatestConfiguration][1] or + # for the configuration profile during the specified interval. + # + # This parameter supports the following values: + # + # * `BYPASS`: Instructs AppConfig to bypass the deletion protection + # check and delete a configuration profile even if deletion + # protection would have otherwise prevented it. + # + # * `APPLY`: Instructs the deletion protection check to run, even if + # deletion protection is disabled at the account level. `APPLY` also + # forces the deletion protection check to run against resources + # created in the past hour, which are normally excluded from + # deletion protection checks. + # + # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig + # to implement the deletion protection value specified in the + # `UpdateAccountSettings` API. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfileRequest AWS API Documentation # class DeleteConfigurationProfileRequest < Struct.new( :application_id, - :configuration_profile_id) + :configuration_profile_id, + :deletion_protection_check) SENSITIVE = [] include Aws::Structure end @@ -835,20 +890,48 @@ class DeleteDeploymentStrategyRequest < Struct.new( include Aws::Structure end + # @!attribute [rw] environment_id + # The ID of the environment that you want to delete. + # @return [String] + # # @!attribute [rw] application_id # The application ID that includes the environment that you want to # delete. # @return [String] # - # @!attribute [rw] environment_id - # The ID of the environment that you want to delete. + # @!attribute [rw] deletion_protection_check + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting an environment if your + # application called either [GetLatestConfiguration][1] or in the + # environment during the specified interval. + # + # This parameter supports the following values: + # + # * `BYPASS`: Instructs AppConfig to bypass the deletion protection + # check and delete a configuration profile even if deletion + # protection would have otherwise prevented it. + # + # * `APPLY`: Instructs the deletion protection check to run, even if + # deletion protection is disabled at the account level. `APPLY` also + # forces the deletion protection check to run against resources + # created in the past hour, which are normally excluded from + # deletion protection checks. + # + # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig + # to implement the deletion protection value specified in the + # `UpdateAccountSettings` API. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironmentRequest AWS API Documentation # class DeleteEnvironmentRequest < Struct.new( + :environment_id, :application_id, - :environment_id) + :deletion_protection_check) SENSITIVE = [] include Aws::Structure end @@ -906,6 +989,51 @@ class DeleteHostedConfigurationVersionRequest < Struct.new( include Aws::Structure end + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile or an + # environment if AppConfig has called either [GetLatestConfiguration][1] + # or for the configuration profile or from the environment during the + # specified interval. + # + # This setting uses the following default values: + # + # * Deletion protection is disabled by default. + # + # * The default interval specified by `ProtectionPeriodInMinutes` is 60. + # + # * `DeletionProtectionCheck` skips configuration profiles and + # environments that were created in the past hour. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # + # @!attribute [rw] enabled + # A parameter that indicates if deletion protection is enabled or not. + # @return [Boolean] + # + # @!attribute [rw] protection_period_in_minutes + # The time interval during which AppConfig monitors for calls to + # [GetLatestConfiguration][1] or for a configuration profile or from + # an environment. AppConfig returns an error if a user calls or for + # the designated configuration profile or environment. To bypass the + # error and delete a configuration profile or an environment, specify + # `BYPASS` for the `DeletionProtectionCheck` parameter for either or . + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeletionProtectionSettings AWS API Documentation + # + class DeletionProtectionSettings < Struct.new( + :enabled, + :protection_period_in_minutes) + SENSITIVE = [] + include Aws::Structure + end + # @!attribute [rw] application_id # The ID of the application that was deployed. # @return [String] @@ -1540,24 +1668,23 @@ class GetConfigurationProfileRequest < Struct.new( # # @!attribute [rw] client_configuration_version # The configuration version returned in the most recent - # `GetConfiguration` response. + # GetConfiguration response. # # AppConfig uses the value of the `ClientConfigurationVersion` # parameter to identify the configuration version on your clients. If # you don’t send `ClientConfigurationVersion` with each call to - # `GetConfiguration`, your clients receive the current configuration. + # GetConfiguration, your clients receive the current configuration. # You are charged each time your clients receive a configuration. # # To avoid excess charges, we recommend you use the # [StartConfigurationSession][1] and [GetLatestConfiguration][2] APIs, # which track the client configuration version on your behalf. If you - # choose to continue using `GetConfiguration`, we recommend that you + # choose to continue using GetConfiguration, we recommend that you # include the `ClientConfigurationVersion` value with every call to - # `GetConfiguration`. The value to use for - # `ClientConfigurationVersion` comes from the `ConfigurationVersion` - # attribute returned by `GetConfiguration` when there is new or - # updated data, and should be saved for subsequent calls to - # `GetConfiguration`. + # GetConfiguration. The value to use for `ClientConfigurationVersion` + # comes from the `ConfigurationVersion` attribute returned by + # GetConfiguration when there is new or updated data, and should be + # saved for subsequent calls to GetConfiguration. # # For more information about working with configurations, see # [Retrieving the Configuration][3] in the *AppConfig User Guide*. @@ -2367,6 +2494,28 @@ class UntagResourceRequest < Struct.new( include Aws::Structure end + # @!attribute [rw] deletion_protection + # A parameter to configure deletion protection. If enabled, deletion + # protection prevents a user from deleting a configuration profile or + # an environment if AppConfig has called either + # [GetLatestConfiguration][1] or for the configuration profile or from + # the environment during the specified interval. Deletion protection + # is disabled by default. The default interval for + # `ProtectionPeriodInMinutes` is 60. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html + # @return [Types::DeletionProtectionSettings] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateAccountSettingsRequest AWS API Documentation + # + class UpdateAccountSettingsRequest < Struct.new( + :deletion_protection) + SENSITIVE = [] + include Aws::Structure + end + # @!attribute [rw] application_id # The application ID. # @return [String] @@ -2614,7 +2763,12 @@ class ValidateConfigurationRequest < Struct.new( # validate your application configuration data, you provide a schema or # an Amazon Web Services Lambda function that runs against the # configuration. The configuration deployment or update can only proceed - # when the configuration data is valid. + # when the configuration data is valid. For more information, see [About + # validators][1] in the *AppConfig User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-profile.html#appconfig-creating-configuration-and-profile-validators # # @!attribute [rw] type # AppConfig supports validators of type `JSON_SCHEMA` and `LAMBDA` diff --git a/gems/aws-sdk-appconfig/sig/client.rbs b/gems/aws-sdk-appconfig/sig/client.rbs index f705472d438..96c51561bbf 100644 --- a/gems/aws-sdk-appconfig/sig/client.rbs +++ b/gems/aws-sdk-appconfig/sig/client.rbs @@ -250,7 +250,8 @@ module Aws # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AppConfig/Client.html#delete_configuration_profile-instance_method def delete_configuration_profile: ( application_id: ::String, - configuration_profile_id: ::String + configuration_profile_id: ::String, + ?deletion_protection_check: ("ACCOUNT_DEFAULT" | "APPLY" | "BYPASS") ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] @@ -262,8 +263,9 @@ module Aws # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AppConfig/Client.html#delete_environment-instance_method def delete_environment: ( + environment_id: ::String, application_id: ::String, - environment_id: ::String + ?deletion_protection_check: ("ACCOUNT_DEFAULT" | "APPLY" | "BYPASS") ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] @@ -288,6 +290,14 @@ module Aws ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + interface _GetAccountSettingsResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::AccountSettings] + def deletion_protection: () -> Types::DeletionProtectionSettings + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AppConfig/Client.html#get_account_settings-instance_method + def get_account_settings: () -> _GetAccountSettingsResponseSuccess + | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetAccountSettingsResponseSuccess + interface _GetApplicationResponseSuccess include ::Seahorse::Client::_ResponseSuccess[Types::Application] def id: () -> ::String @@ -657,6 +667,19 @@ module Aws ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + interface _UpdateAccountSettingsResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::AccountSettings] + def deletion_protection: () -> Types::DeletionProtectionSettings + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AppConfig/Client.html#update_account_settings-instance_method + def update_account_settings: ( + ?deletion_protection: { + enabled: bool?, + protection_period_in_minutes: ::Integer? + } + ) -> _UpdateAccountSettingsResponseSuccess + | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateAccountSettingsResponseSuccess + interface _UpdateApplicationResponseSuccess include ::Seahorse::Client::_ResponseSuccess[Types::Application] def id: () -> ::String diff --git a/gems/aws-sdk-appconfig/sig/types.rbs b/gems/aws-sdk-appconfig/sig/types.rbs index 4e52a69e40b..e12434ac26a 100644 --- a/gems/aws-sdk-appconfig/sig/types.rbs +++ b/gems/aws-sdk-appconfig/sig/types.rbs @@ -8,6 +8,11 @@ module Aws::AppConfig module Types + class AccountSettings + attr_accessor deletion_protection: Types::DeletionProtectionSettings + SENSITIVE: [] + end + class Action attr_accessor name: ::String attr_accessor description: ::String @@ -187,6 +192,7 @@ module Aws::AppConfig class DeleteConfigurationProfileRequest attr_accessor application_id: ::String attr_accessor configuration_profile_id: ::String + attr_accessor deletion_protection_check: ("ACCOUNT_DEFAULT" | "APPLY" | "BYPASS") SENSITIVE: [] end @@ -196,8 +202,9 @@ module Aws::AppConfig end class DeleteEnvironmentRequest - attr_accessor application_id: ::String attr_accessor environment_id: ::String + attr_accessor application_id: ::String + attr_accessor deletion_protection_check: ("ACCOUNT_DEFAULT" | "APPLY" | "BYPASS") SENSITIVE: [] end @@ -219,6 +226,12 @@ module Aws::AppConfig SENSITIVE: [] end + class DeletionProtectionSettings + attr_accessor enabled: bool + attr_accessor protection_period_in_minutes: ::Integer + SENSITIVE: [] + end + class Deployment attr_accessor application_id: ::String attr_accessor environment_id: ::String @@ -592,6 +605,11 @@ module Aws::AppConfig SENSITIVE: [] end + class UpdateAccountSettingsRequest + attr_accessor deletion_protection: Types::DeletionProtectionSettings + SENSITIVE: [] + end + class UpdateApplicationRequest attr_accessor application_id: ::String attr_accessor name: ::String diff --git a/gems/aws-sdk-datazone/CHANGELOG.md b/gems/aws-sdk-datazone/CHANGELOG.md index e2efffbb9bd..08816a0ff7d 100644 --- a/gems/aws-sdk-datazone/CHANGELOG.md +++ b/gems/aws-sdk-datazone/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.19.0 (2024-08-28) +------------------ + +* Feature - Update regex to include dot character to be consistent with IAM role creation in the authorized principal field for create and update subscription target. + 1.18.0 (2024-08-05) ------------------ diff --git a/gems/aws-sdk-datazone/VERSION b/gems/aws-sdk-datazone/VERSION index 84cc529467b..815d5ca06d5 100644 --- a/gems/aws-sdk-datazone/VERSION +++ b/gems/aws-sdk-datazone/VERSION @@ -1 +1 @@ -1.18.0 +1.19.0 diff --git a/gems/aws-sdk-datazone/lib/aws-sdk-datazone.rb b/gems/aws-sdk-datazone/lib/aws-sdk-datazone.rb index eada511f53a..d9ff47c0bda 100644 --- a/gems/aws-sdk-datazone/lib/aws-sdk-datazone.rb +++ b/gems/aws-sdk-datazone/lib/aws-sdk-datazone.rb @@ -52,6 +52,6 @@ # @!group service module Aws::DataZone - GEM_VERSION = '1.18.0' + GEM_VERSION = '1.19.0' end diff --git a/gems/aws-sdk-datazone/lib/aws-sdk-datazone/client.rb b/gems/aws-sdk-datazone/lib/aws-sdk-datazone/client.rb index 6a43dfe6deb..ffbb7f97a64 100644 --- a/gems/aws-sdk-datazone/lib/aws-sdk-datazone/client.rb +++ b/gems/aws-sdk-datazone/lib/aws-sdk-datazone/client.rb @@ -2889,7 +2889,7 @@ def delete_asset_type(params = {}, options = {}) req.send_request(options) end - # Deletes an data product in Amazon DataZone. + # Deletes a data product in Amazon DataZone. # # @option params [required, String] :domain_identifier # The ID of the Amazon DataZone domain in which the data product is @@ -9583,7 +9583,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-datazone' - context[:gem_version] = '1.18.0' + context[:gem_version] = '1.19.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-devicefarm/CHANGELOG.md b/gems/aws-sdk-devicefarm/CHANGELOG.md index cf01273c93b..dc09f81b438 100644 --- a/gems/aws-sdk-devicefarm/CHANGELOG.md +++ b/gems/aws-sdk-devicefarm/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.73.0 (2024-08-28) +------------------ + +* Feature - This release removed support for Calabash, UI Automation, Built-in Explorer, remote access record, remote access replay, and web performance profile framework in ScheduleRun API. + 1.72.0 (2024-07-08) ------------------ diff --git a/gems/aws-sdk-devicefarm/VERSION b/gems/aws-sdk-devicefarm/VERSION index 0834888f558..5e3a4256626 100644 --- a/gems/aws-sdk-devicefarm/VERSION +++ b/gems/aws-sdk-devicefarm/VERSION @@ -1 +1 @@ -1.72.0 +1.73.0 diff --git a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm.rb b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm.rb index 94f1d3bc4ba..b7e923b7720 100644 --- a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm.rb +++ b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm.rb @@ -52,6 +52,6 @@ # @!group service module Aws::DeviceFarm - GEM_VERSION = '1.72.0' + GEM_VERSION = '1.73.0' end diff --git a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb index 523e461aade..75e9303f077 100644 --- a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb +++ b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/client.rb @@ -1071,14 +1071,8 @@ def create_test_grid_url(params = {}, options = {}) # # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE # - # * CALABASH\_TEST\_PACKAGE - # # * INSTRUMENTATION\_TEST\_PACKAGE # - # * UIAUTOMATION\_TEST\_PACKAGE - # - # * UIAUTOMATOR\_TEST\_PACKAGE - # # * XCTEST\_TEST\_PACKAGE # # * XCTEST\_UI\_TEST\_PACKAGE @@ -1759,10 +1753,6 @@ def get_device_pool(params = {}, options = {}) # # * BUILTIN\_FUZZ. # - # * BUILTIN\_EXPLORER. For Android, an app explorer that traverses an - # Android app, interacting with it and capturing screenshots at the - # same time. - # # * APPIUM\_JAVA\_JUNIT. # # * APPIUM\_JAVA\_TESTNG. @@ -1783,14 +1773,8 @@ def get_device_pool(params = {}, options = {}) # # * APPIUM\_WEB\_RUBY. # - # * CALABASH. - # # * INSTRUMENTATION. # - # * UIAUTOMATION. - # - # * UIAUTOMATOR. - # # * XCTEST. # # * XCTEST\_UI. @@ -1830,9 +1814,9 @@ def get_device_pool(params = {}, options = {}) # resp = client.get_device_pool_compatibility({ # device_pool_arn: "AmazonResourceName", # required # app_arn: "AmazonResourceName", - # test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY + # test_type: "BUILTIN_FUZZ", # accepts BUILTIN_FUZZ, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, INSTRUMENTATION, XCTEST, XCTEST_UI # test: { - # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY + # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, INSTRUMENTATION, XCTEST, XCTEST_UI # test_package_arn: "AmazonResourceName", # test_spec_arn: "AmazonResourceName", # filter: "Filter", @@ -2029,7 +2013,7 @@ def get_instance_profile(params = {}, options = {}) # # resp.job.arn #=> String # resp.job.name #=> String - # resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.job.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.job.created #=> Time # resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -2418,7 +2402,6 @@ def get_remote_access_session(params = {}, options = {}) # { # run: { # name: "My Test Run", - # type: "BUILTIN_EXPLORER", # arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # billing_method: "METERED", # completed_jobs: 0, @@ -2454,7 +2437,7 @@ def get_remote_access_session(params = {}, options = {}) # # resp.run.arn #=> String # resp.run.name #=> String - # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.run.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.run.platform #=> String, one of "ANDROID", "IOS" # resp.run.created #=> Time # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" @@ -2566,7 +2549,7 @@ def get_run(params = {}, options = {}) # # resp.suite.arn #=> String # resp.suite.name #=> String - # resp.suite.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.suite.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.suite.created #=> Time # resp.suite.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.suite.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -2627,7 +2610,7 @@ def get_suite(params = {}, options = {}) # # resp.test.arn #=> String # resp.test.name #=> String - # resp.test.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.test.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.test.created #=> Time # resp.test.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.test.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -3350,7 +3333,7 @@ def list_instance_profiles(params = {}, options = {}) # resp.jobs #=> Array # resp.jobs[0].arn #=> String # resp.jobs[0].name #=> String - # resp.jobs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.jobs[0].type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.jobs[0].created #=> Time # resp.jobs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.jobs[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -4005,7 +3988,6 @@ def list_remote_access_sessions(params = {}, options = {}) # runs: [ # { # name: "My Test Run", - # type: "BUILTIN_EXPLORER", # arn: "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-5ec6e6c6dd23/0fcac17b-6122-44d7-ae5a-12345EXAMPLE", # billing_method: "METERED", # completed_jobs: 0, @@ -4044,7 +4026,7 @@ def list_remote_access_sessions(params = {}, options = {}) # resp.runs #=> Array # resp.runs[0].arn #=> String # resp.runs[0].name #=> String - # resp.runs[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.runs[0].type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.runs[0].platform #=> String, one of "ANDROID", "IOS" # resp.runs[0].created #=> Time # resp.runs[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" @@ -4225,7 +4207,7 @@ def list_samples(params = {}, options = {}) # resp.suites #=> Array # resp.suites[0].arn #=> String # resp.suites[0].name #=> String - # resp.suites[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.suites[0].type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.suites[0].created #=> Time # resp.suites[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.suites[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -4535,7 +4517,7 @@ def list_test_grid_sessions(params = {}, options = {}) # resp.tests #=> Array # resp.tests[0].arn #=> String # resp.tests[0].name #=> String - # resp.tests[0].type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.tests[0].type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.tests[0].created #=> Time # resp.tests[0].status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.tests[0].result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -4712,14 +4694,8 @@ def list_unique_problems(params = {}, options = {}) # # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE # - # * CALABASH\_TEST\_PACKAGE - # # * INSTRUMENTATION\_TEST\_PACKAGE # - # * UIAUTOMATION\_TEST\_PACKAGE - # - # * UIAUTOMATOR\_TEST\_PACKAGE - # # * XCTEST\_TEST\_PACKAGE # # * XCTEST\_UI\_TEST\_PACKAGE @@ -5100,7 +5076,7 @@ def renew_offering(params = {}, options = {}) # }, # name: "Name", # test: { # required - # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, BUILTIN_EXPLORER, WEB_PERFORMANCE_PROFILE, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, CALABASH, INSTRUMENTATION, UIAUTOMATION, UIAUTOMATOR, XCTEST, XCTEST_UI, REMOTE_ACCESS_RECORD, REMOTE_ACCESS_REPLAY + # type: "BUILTIN_FUZZ", # required, accepts BUILTIN_FUZZ, APPIUM_JAVA_JUNIT, APPIUM_JAVA_TESTNG, APPIUM_PYTHON, APPIUM_NODE, APPIUM_RUBY, APPIUM_WEB_JAVA_JUNIT, APPIUM_WEB_JAVA_TESTNG, APPIUM_WEB_PYTHON, APPIUM_WEB_NODE, APPIUM_WEB_RUBY, INSTRUMENTATION, XCTEST, XCTEST_UI # test_package_arn: "AmazonResourceName", # test_spec_arn: "AmazonResourceName", # filter: "Filter", @@ -5144,7 +5120,7 @@ def renew_offering(params = {}, options = {}) # # resp.run.arn #=> String # resp.run.name #=> String - # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.run.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.run.platform #=> String, one of "ANDROID", "IOS" # resp.run.created #=> Time # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" @@ -5247,7 +5223,7 @@ def schedule_run(params = {}, options = {}) # # resp.job.arn #=> String # resp.job.name #=> String - # resp.job.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.job.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.job.created #=> Time # resp.job.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" # resp.job.result #=> String, one of "PENDING", "PASSED", "WARNED", "FAILED", "SKIPPED", "ERRORED", "STOPPED" @@ -5445,7 +5421,7 @@ def stop_remote_access_session(params = {}, options = {}) # # resp.run.arn #=> String # resp.run.name #=> String - # resp.run.type #=> String, one of "BUILTIN_FUZZ", "BUILTIN_EXPLORER", "WEB_PERFORMANCE_PROFILE", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "CALABASH", "INSTRUMENTATION", "UIAUTOMATION", "UIAUTOMATOR", "XCTEST", "XCTEST_UI", "REMOTE_ACCESS_RECORD", "REMOTE_ACCESS_REPLAY" + # resp.run.type #=> String, one of "BUILTIN_FUZZ", "APPIUM_JAVA_JUNIT", "APPIUM_JAVA_TESTNG", "APPIUM_PYTHON", "APPIUM_NODE", "APPIUM_RUBY", "APPIUM_WEB_JAVA_JUNIT", "APPIUM_WEB_JAVA_TESTNG", "APPIUM_WEB_PYTHON", "APPIUM_WEB_NODE", "APPIUM_WEB_RUBY", "INSTRUMENTATION", "XCTEST", "XCTEST_UI" # resp.run.platform #=> String, one of "ANDROID", "IOS" # resp.run.created #=> Time # resp.run.status #=> String, one of "PENDING", "PENDING_CONCURRENCY", "PENDING_DEVICE", "PROCESSING", "SCHEDULING", "PREPARING", "RUNNING", "COMPLETED", "STOPPING" @@ -6153,7 +6129,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-devicefarm' - context[:gem_version] = '1.72.0' + context[:gem_version] = '1.73.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/types.rb b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/types.rb index 07fff8c0d34..520a2aa8ab2 100644 --- a/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/types.rb +++ b/gems/aws-sdk-devicefarm/lib/aws-sdk-devicefarm/types.rb @@ -127,16 +127,6 @@ class ArgumentException < Struct.new( # * EXERCISER\_MONKEY\_OUTPUT: the artifact (log) generated by an # Android fuzz test. # - # * CALABASH\_JSON\_OUTPUT - # - # * CALABASH\_PRETTY\_OUTPUT - # - # * CALABASH\_STANDARD\_OUTPUT - # - # * CALABASH\_JAVA\_XML\_OUTPUT - # - # * AUTOMATION\_OUTPUT - # # * APPIUM\_SERVER\_OUTPUT # # * APPIUM\_JAVA\_OUTPUT @@ -147,10 +137,6 @@ class ArgumentException < Struct.new( # # * APPIUM\_PYTHON\_XML\_OUTPUT # - # * EXPLORER\_EVENT\_LOG - # - # * EXPLORER\_SUMMARY\_LOG - # # * APPLICATION\_CRASH\_REPORT # # * XCTEST\_LOG @@ -776,14 +762,8 @@ class CreateTestGridUrlResult < Struct.new( # # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE # - # * CALABASH\_TEST\_PACKAGE - # # * INSTRUMENTATION\_TEST\_PACKAGE # - # * UIAUTOMATION\_TEST\_PACKAGE - # - # * UIAUTOMATOR\_TEST\_PACKAGE - # # * XCTEST\_TEST\_PACKAGE # # * XCTEST\_UI\_TEST\_PACKAGE @@ -1762,10 +1742,6 @@ class GetDeviceInstanceResult < Struct.new( # # * BUILTIN\_FUZZ. # - # * BUILTIN\_EXPLORER. For Android, an app explorer that traverses an - # Android app, interacting with it and capturing screenshots at the - # same time. - # # * APPIUM\_JAVA\_JUNIT. # # * APPIUM\_JAVA\_TESTNG. @@ -1786,14 +1762,8 @@ class GetDeviceInstanceResult < Struct.new( # # * APPIUM\_WEB\_RUBY. # - # * CALABASH. - # # * INSTRUMENTATION. # - # * UIAUTOMATION. - # - # * UIAUTOMATOR. - # # * XCTEST. # # * XCTEST\_UI. @@ -2448,10 +2418,6 @@ class InvalidOperationException < Struct.new( # # * BUILTIN\_FUZZ # - # * BUILTIN\_EXPLORER. For Android, an app explorer that traverses an - # Android app, interacting with it and capturing screenshots at the - # same time. - # # * APPIUM\_JAVA\_JUNIT # # * APPIUM\_JAVA\_TESTNG @@ -2472,14 +2438,8 @@ class InvalidOperationException < Struct.new( # # * APPIUM\_WEB\_RUBY # - # * CALABASH - # # * INSTRUMENTATION # - # * UIAUTOMATION - # - # * UIAUTOMATOR - # # * XCTEST # # * XCTEST\_UI @@ -3683,14 +3643,8 @@ class ListUniqueProblemsResult < Struct.new( # # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE # - # * CALABASH\_TEST\_PACKAGE - # # * INSTRUMENTATION\_TEST\_PACKAGE # - # * UIAUTOMATION\_TEST\_PACKAGE - # - # * UIAUTOMATOR\_TEST\_PACKAGE - # # * XCTEST\_TEST\_PACKAGE # # * XCTEST\_UI\_TEST\_PACKAGE @@ -4675,13 +4629,6 @@ class Rule < Struct.new( # # * BUILTIN\_FUZZ # - # * BUILTIN\_EXPLORER - # - # For Android, an app explorer that traverses an Android app, - # interacting with it and capturing screenshots at the same time. - # - # - # # * APPIUM\_JAVA\_JUNIT # # * APPIUM\_JAVA\_TESTNG @@ -4702,14 +4649,8 @@ class Rule < Struct.new( # # * APPIUM\_WEB\_RUBY # - # * CALABASH - # # * INSTRUMENTATION # - # * UIAUTOMATION - # - # * UIAUTOMATOR - # # * XCTEST # # * XCTEST\_UI @@ -5155,10 +5096,6 @@ class ScheduleRunResult < Struct.new( # # * BUILTIN\_FUZZ # - # * BUILTIN\_EXPLORER. For Android, an app explorer that traverses an - # Android app, interacting with it and capturing screenshots at the - # same time. - # # * APPIUM\_JAVA\_JUNIT # # * APPIUM\_JAVA\_TESTNG @@ -5179,14 +5116,8 @@ class ScheduleRunResult < Struct.new( # # * APPIUM\_WEB\_RUBY # - # * CALABASH - # # * INSTRUMENTATION # - # * UIAUTOMATION - # - # * UIAUTOMATOR - # # * XCTEST # # * XCTEST\_UI @@ -5216,14 +5147,6 @@ class ScheduleRunResult < Struct.new( # # ^ # - # For Calabash tests: - # - # * profile: A cucumber profile (for example, `my_profile_name`). - # - # * tags: You can limit execution to features or scenarios that have - # (or don't have) certain tags (for example, @smoke or - # @smoke,~@wip). - # # For Appium tests (all types): # # * appium\_version: The Appium version. Currently supported values @@ -5249,14 +5172,6 @@ class ScheduleRunResult < Struct.new( # * seed: A seed to use for randomizing the UI fuzz test. Using the # same seed value between tests ensures identical event sequences. # - # For Explorer tests: - # - # * username: A user name to use if the Explorer encounters a login - # form. If not supplied, no user name is inserted. - # - # * password: A password to use if the Explorer encounters a login - # form. If not supplied, no password is inserted. - # # For Instrumentation: # # * filter: A test filter string. Examples: @@ -5280,17 +5195,6 @@ class ScheduleRunResult < Struct.new( # # * Running multiple tests: # `LoginTests/testValid,LoginTests/testInvalid` - # - # For UIAutomator: - # - # * filter: A test filter string. Examples: - # - # * Running a single test case: `com.android.abc.Test1` - # - # * Running a single test: `com.android.abc.Test1#smoke` - # - # * Running multiple tests: - # `com.android.abc.Test1,com.android.abc.Test2` # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRunTest AWS API Documentation @@ -5420,14 +5324,6 @@ class StopRunResult < Struct.new( # # * BUILTIN\_FUZZ # - # * BUILTIN\_EXPLORER - # - # Only available for Android; an app explorer that traverses an - # Android app, interacting with it and capturing screenshots at the - # same time. - # - # - # # * APPIUM\_JAVA\_JUNIT # # * APPIUM\_JAVA\_TESTNG @@ -5448,14 +5344,8 @@ class StopRunResult < Struct.new( # # * APPIUM\_WEB\_RUBY # - # * CALABASH - # # * INSTRUMENTATION # - # * UIAUTOMATION - # - # * UIAUTOMATOR - # # * XCTEST # # * XCTEST\_UI @@ -5652,13 +5542,6 @@ class TagResourceResponse < Aws::EmptyStructure; end # # * BUILTIN\_FUZZ # - # * BUILTIN\_EXPLORER - # - # For Android, an app explorer that traverses an Android app, - # interacting with it and capturing screenshots at the same time. - # - # - # # * APPIUM\_JAVA\_JUNIT # # * APPIUM\_JAVA\_TESTNG @@ -5679,14 +5562,8 @@ class TagResourceResponse < Aws::EmptyStructure; end # # * APPIUM\_WEB\_RUBY # - # * CALABASH - # # * INSTRUMENTATION # - # * UIAUTOMATION - # - # * UIAUTOMATOR - # # * XCTEST # # * XCTEST\_UI @@ -6507,14 +6384,8 @@ class UpdateVPCEConfigurationResult < Struct.new( # # * APPIUM\_WEB\_RUBY\_TEST\_PACKAGE # - # * CALABASH\_TEST\_PACKAGE - # # * INSTRUMENTATION\_TEST\_PACKAGE # - # * UIAUTOMATION\_TEST\_PACKAGE - # - # * UIAUTOMATOR\_TEST\_PACKAGE - # # * XCTEST\_TEST\_PACKAGE # # * XCTEST\_UI\_TEST\_PACKAGE diff --git a/gems/aws-sdk-devicefarm/sig/client.rbs b/gems/aws-sdk-devicefarm/sig/client.rbs index d3152ed3a4c..f5cd0c10b87 100644 --- a/gems/aws-sdk-devicefarm/sig/client.rbs +++ b/gems/aws-sdk-devicefarm/sig/client.rbs @@ -352,9 +352,9 @@ module Aws def get_device_pool_compatibility: ( device_pool_arn: ::String, ?app_arn: ::String, - ?test_type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY"), + ?test_type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI"), ?test: { - type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY"), + type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI"), test_package_arn: ::String?, test_spec_arn: ::String?, filter: ::String?, @@ -878,7 +878,7 @@ module Aws }, ?name: ::String, test: { - type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY"), + type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI"), test_package_arn: ::String?, test_spec_arn: ::String?, filter: ::String?, diff --git a/gems/aws-sdk-devicefarm/sig/types.rbs b/gems/aws-sdk-devicefarm/sig/types.rbs index 0adc05bf2db..fbbb3155bac 100644 --- a/gems/aws-sdk-devicefarm/sig/types.rbs +++ b/gems/aws-sdk-devicefarm/sig/types.rbs @@ -383,7 +383,7 @@ module Aws::DeviceFarm class GetDevicePoolCompatibilityRequest attr_accessor device_pool_arn: ::String attr_accessor app_arn: ::String - attr_accessor test_type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor test_type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor test: Types::ScheduleRunTest attr_accessor configuration: Types::ScheduleRunConfiguration SENSITIVE: [] @@ -594,7 +594,7 @@ module Aws::DeviceFarm class Job attr_accessor arn: ::String attr_accessor name: ::String - attr_accessor type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor created: ::Time attr_accessor status: ("PENDING" | "PENDING_CONCURRENCY" | "PENDING_DEVICE" | "PROCESSING" | "SCHEDULING" | "PREPARING" | "RUNNING" | "COMPLETED" | "STOPPING") attr_accessor result: ("PENDING" | "PASSED" | "WARNED" | "FAILED" | "SKIPPED" | "ERRORED" | "STOPPED") @@ -1087,7 +1087,7 @@ module Aws::DeviceFarm class Run attr_accessor arn: ::String attr_accessor name: ::String - attr_accessor type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor platform: ("ANDROID" | "IOS") attr_accessor created: ::Time attr_accessor status: ("PENDING" | "PENDING_CONCURRENCY" | "PENDING_DEVICE" | "PROCESSING" | "SCHEDULING" | "PREPARING" | "RUNNING" | "COMPLETED" | "STOPPING") @@ -1158,7 +1158,7 @@ module Aws::DeviceFarm end class ScheduleRunTest - attr_accessor type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor test_package_arn: ::String attr_accessor test_spec_arn: ::String attr_accessor filter: ::String @@ -1204,7 +1204,7 @@ module Aws::DeviceFarm class Suite attr_accessor arn: ::String attr_accessor name: ::String - attr_accessor type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor created: ::Time attr_accessor status: ("PENDING" | "PENDING_CONCURRENCY" | "PENDING_DEVICE" | "PROCESSING" | "SCHEDULING" | "PREPARING" | "RUNNING" | "COMPLETED" | "STOPPING") attr_accessor result: ("PENDING" | "PASSED" | "WARNED" | "FAILED" | "SKIPPED" | "ERRORED" | "STOPPED") @@ -1246,7 +1246,7 @@ module Aws::DeviceFarm class Test attr_accessor arn: ::String attr_accessor name: ::String - attr_accessor type: ("BUILTIN_FUZZ" | "BUILTIN_EXPLORER" | "WEB_PERFORMANCE_PROFILE" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "CALABASH" | "INSTRUMENTATION" | "UIAUTOMATION" | "UIAUTOMATOR" | "XCTEST" | "XCTEST_UI" | "REMOTE_ACCESS_RECORD" | "REMOTE_ACCESS_REPLAY") + attr_accessor type: ("BUILTIN_FUZZ" | "APPIUM_JAVA_JUNIT" | "APPIUM_JAVA_TESTNG" | "APPIUM_PYTHON" | "APPIUM_NODE" | "APPIUM_RUBY" | "APPIUM_WEB_JAVA_JUNIT" | "APPIUM_WEB_JAVA_TESTNG" | "APPIUM_WEB_PYTHON" | "APPIUM_WEB_NODE" | "APPIUM_WEB_RUBY" | "INSTRUMENTATION" | "XCTEST" | "XCTEST_UI") attr_accessor created: ::Time attr_accessor status: ("PENDING" | "PENDING_CONCURRENCY" | "PENDING_DEVICE" | "PROCESSING" | "SCHEDULING" | "PREPARING" | "RUNNING" | "COMPLETED" | "STOPPING") attr_accessor result: ("PENDING" | "PASSED" | "WARNED" | "FAILED" | "SKIPPED" | "ERRORED" | "STOPPED") diff --git a/gems/aws-sdk-ec2/CHANGELOG.md b/gems/aws-sdk-ec2/CHANGELOG.md index 57dc6d6ed65..165c3c49a62 100644 --- a/gems/aws-sdk-ec2/CHANGELOG.md +++ b/gems/aws-sdk-ec2/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.471.0 (2024-08-28) +------------------ + +* Feature - Amazon VPC IP Address Manager (IPAM) now allows customers to provision IPv4 CIDR blocks and allocate Elastic IP Addresses directly from IPAM pools with public IPv4 space + 1.470.0 (2024-08-21) ------------------ diff --git a/gems/aws-sdk-ec2/VERSION b/gems/aws-sdk-ec2/VERSION index 2b402e7ca56..40809b807f0 100644 --- a/gems/aws-sdk-ec2/VERSION +++ b/gems/aws-sdk-ec2/VERSION @@ -1 +1 @@ -1.470.0 +1.471.0 diff --git a/gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb b/gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb index 5a03a90fda4..fb0562f906e 100644 --- a/gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb +++ b/gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb @@ -76,6 +76,6 @@ # @!group service module Aws::EC2 - GEM_VERSION = '1.470.0' + GEM_VERSION = '1.471.0' end diff --git a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client.rb b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client.rb index 711b24dedf6..547a4814516 100644 --- a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client.rb +++ b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client.rb @@ -969,6 +969,9 @@ def advertise_byoip_cidr(params = {}, options = {}) # @option params [Array] :tag_specifications # The tags to assign to the Elastic IP address. # + # @option params [String] :ipam_pool_id + # The ID of an IPAM pool. + # # @return [Types::AllocateAddressResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::AllocateAddressResult#public_ip #public_ip} => String @@ -1017,6 +1020,7 @@ def advertise_byoip_cidr(params = {}, options = {}) # ], # }, # ], + # ipam_pool_id: "IpamPoolId", # }) # # @example Response structure @@ -1291,7 +1295,7 @@ def allocate_hosts(params = {}, options = {}) # resp.ipam_pool_allocation.ipam_pool_allocation_id #=> String # resp.ipam_pool_allocation.description #=> String # resp.ipam_pool_allocation.resource_id #=> String - # resp.ipam_pool_allocation.resource_type #=> String, one of "ipam-pool", "vpc", "ec2-public-ipv4-pool", "custom", "subnet" + # resp.ipam_pool_allocation.resource_type #=> String, one of "ipam-pool", "vpc", "ec2-public-ipv4-pool", "custom", "subnet", "eip" # resp.ipam_pool_allocation.resource_region #=> String # resp.ipam_pool_allocation.resource_owner #=> String # @@ -42800,7 +42804,7 @@ def get_ipam_discovered_accounts(params = {}, options = {}) # resp.ipam_discovered_public_addresses[0].address_owner_id #=> String # resp.ipam_discovered_public_addresses[0].address_allocation_id #=> String # resp.ipam_discovered_public_addresses[0].association_status #=> String, one of "associated", "disassociated" - # resp.ipam_discovered_public_addresses[0].address_type #=> String, one of "service-managed-ip", "service-managed-byoip", "amazon-owned-eip", "byoip", "ec2-public-ip" + # resp.ipam_discovered_public_addresses[0].address_type #=> String, one of "service-managed-ip", "service-managed-byoip", "amazon-owned-eip", "amazon-owned-contig", "byoip", "ec2-public-ip" # resp.ipam_discovered_public_addresses[0].service #=> String, one of "nat-gateway", "database-migration-service", "redshift", "elastic-container-service", "relational-database-service", "site-to-site-vpn", "load-balancer", "global-accelerator", "other" # resp.ipam_discovered_public_addresses[0].service_resource #=> String # resp.ipam_discovered_public_addresses[0].vpc_id #=> String @@ -42981,7 +42985,7 @@ def get_ipam_discovered_resource_cidrs(params = {}, options = {}) # resp.ipam_pool_allocations[0].ipam_pool_allocation_id #=> String # resp.ipam_pool_allocations[0].description #=> String # resp.ipam_pool_allocations[0].resource_id #=> String - # resp.ipam_pool_allocations[0].resource_type #=> String, one of "ipam-pool", "vpc", "ec2-public-ipv4-pool", "custom", "subnet" + # resp.ipam_pool_allocations[0].resource_type #=> String, one of "ipam-pool", "vpc", "ec2-public-ipv4-pool", "custom", "subnet", "eip" # resp.ipam_pool_allocations[0].resource_region #=> String # resp.ipam_pool_allocations[0].resource_owner #=> String # resp.next_token #=> String @@ -53430,8 +53434,9 @@ def reboot_instances(params = {}, options = {}) # Registers an AMI. When you're creating an instance-store backed AMI, # registering the AMI is the final step in the creation process. For - # more information about creating AMIs, see [Create your own AMI][1] in - # the *Amazon Elastic Compute Cloud User Guide*. + # more information about creating AMIs, see [Create an AMI from a + # snapshot][1] and [Create an instance-store backed AMI][2] in the + # *Amazon EC2 User Guide*. # # For Amazon EBS-backed instances, CreateImage creates and registers the # AMI in a single request, so you don't have to register the AMI @@ -53454,28 +53459,28 @@ def reboot_instances(params = {}, options = {}) # encrypted, or encryption by default is enabled, the root volume of an # instance launched from the AMI is encrypted. # - # For more information, see [Create a Linux AMI from a snapshot][2] and - # [Use encryption with Amazon EBS-backed AMIs][3] in the *Amazon Elastic - # Compute Cloud User Guide*. + # For more information, see [Create an AMI from a snapshot][1] and [Use + # encryption with Amazon EBS-backed AMIs][3] in the *Amazon EC2 User + # Guide*. # # **Amazon Web Services Marketplace product codes** # # If any snapshots have Amazon Web Services Marketplace product codes, # they are copied to the new AMI. # - # Windows and some Linux distributions, such as Red Hat Enterprise Linux - # (RHEL) and SUSE Linux Enterprise Server (SLES), use the Amazon EC2 - # billing product code associated with an AMI to verify the subscription - # status for package updates. To create a new AMI for operating systems - # that require a billing product code, instead of registering the AMI, - # do the following to preserve the billing product code association: - # - # 1. Launch an instance from an existing AMI with that billing product - # code. - # - # 2. Customize the instance. - # - # 3. Create an AMI from the instance using CreateImage. + # In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require + # correct licensing information to be present on the AMI. For more + # information, see [Understand AMI billing information][4] in the + # *Amazon EC2 User Guide*. When creating an AMI from a snapshot, the + # `RegisterImage` operation derives the correct billing information from + # the snapshot's metadata, but this requires the appropriate metadata + # to be present. To verify if the correct billing information was + # applied, check the `PlatformDetails` field on the new AMI. If the + # field is empty or doesn't match the expected operating system code + # (for example, Windows, RedHat, SUSE, or SQL), the AMI creation was + # unsuccessful, and you should discard the AMI and instead create the + # AMI from an instance using CreateImage. For more information, see + # [Create an AMI from an instance ][5] in the *Amazon EC2 User Guide*. # # If you purchase a Reserved Instance to apply to an On-Demand Instance # that was launched from an AMI with a billing product code, make sure @@ -53488,10 +53493,11 @@ def reboot_instances(params = {}, options = {}) # # # - # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html - # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot + # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html # [4]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html + # [5]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami # # @option params [String] :image_location # The full path to your AMI manifest in Amazon S3 storage. The specified @@ -60103,7 +60109,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-ec2' - context[:gem_version] = '1.470.0' + context[:gem_version] = '1.471.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client_api.rb b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client_api.rb index ab217d8b3e6..5e1023bb490 100644 --- a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client_api.rb +++ b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/client_api.rb @@ -3424,6 +3424,7 @@ module ClientApi AllocateAddressRequest.add_member(:customer_owned_ipv_4_pool, Shapes::ShapeRef.new(shape: String, location_name: "CustomerOwnedIpv4Pool")) AllocateAddressRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun")) AllocateAddressRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification")) + AllocateAddressRequest.add_member(:ipam_pool_id, Shapes::ShapeRef.new(shape: IpamPoolId, location_name: "IpamPoolId")) AllocateAddressRequest.struct_class = Types::AllocateAddressRequest AllocateAddressResult.add_member(:public_ip, Shapes::ShapeRef.new(shape: String, location_name: "publicIp")) diff --git a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/types.rb b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/types.rb index 7e89f1ef8d2..173fb94c5d6 100644 --- a/gems/aws-sdk-ec2/lib/aws-sdk-ec2/types.rb +++ b/gems/aws-sdk-ec2/lib/aws-sdk-ec2/types.rb @@ -897,6 +897,10 @@ class AdvertiseByoipCidrResult < Struct.new( # The tags to assign to the Elastic IP address. # @return [Array] # + # @!attribute [rw] ipam_pool_id + # The ID of an IPAM pool. + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddressRequest AWS API Documentation # class AllocateAddressRequest < Struct.new( @@ -906,7 +910,8 @@ class AllocateAddressRequest < Struct.new( :network_border_group, :customer_owned_ipv_4_pool, :dry_run, - :tag_specifications) + :tag_specifications, + :ipam_pool_id) SENSITIVE = [] include Aws::Structure end diff --git a/gems/aws-sdk-ec2/sig/client.rbs b/gems/aws-sdk-ec2/sig/client.rbs index 97f32d24da7..533ab9c5af1 100644 --- a/gems/aws-sdk-ec2/sig/client.rbs +++ b/gems/aws-sdk-ec2/sig/client.rbs @@ -212,7 +212,8 @@ module Aws }, ]? }, - ] + ], + ?ipam_pool_id: ::String ) -> _AllocateAddressResponseSuccess | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _AllocateAddressResponseSuccess diff --git a/gems/aws-sdk-ec2/sig/types.rbs b/gems/aws-sdk-ec2/sig/types.rbs index d7cee940827..e64840f89f2 100644 --- a/gems/aws-sdk-ec2/sig/types.rbs +++ b/gems/aws-sdk-ec2/sig/types.rbs @@ -243,6 +243,7 @@ module Aws::EC2 attr_accessor customer_owned_ipv_4_pool: ::String attr_accessor dry_run: bool attr_accessor tag_specifications: ::Array[Types::TagSpecification] + attr_accessor ipam_pool_id: ::String SENSITIVE: [] end @@ -9420,7 +9421,7 @@ module Aws::EC2 attr_accessor address_owner_id: ::String attr_accessor address_allocation_id: ::String attr_accessor association_status: ("associated" | "disassociated") - attr_accessor address_type: ("service-managed-ip" | "service-managed-byoip" | "amazon-owned-eip" | "byoip" | "ec2-public-ip") + attr_accessor address_type: ("service-managed-ip" | "service-managed-byoip" | "amazon-owned-eip" | "amazon-owned-contig" | "byoip" | "ec2-public-ip") attr_accessor service: ("nat-gateway" | "database-migration-service" | "redshift" | "elastic-container-service" | "relational-database-service" | "site-to-site-vpn" | "load-balancer" | "global-accelerator" | "other") attr_accessor service_resource: ::String attr_accessor vpc_id: ::String @@ -9512,7 +9513,7 @@ module Aws::EC2 attr_accessor ipam_pool_allocation_id: ::String attr_accessor description: ::String attr_accessor resource_id: ::String - attr_accessor resource_type: ("ipam-pool" | "vpc" | "ec2-public-ipv4-pool" | "custom" | "subnet") + attr_accessor resource_type: ("ipam-pool" | "vpc" | "ec2-public-ipv4-pool" | "custom" | "subnet" | "eip") attr_accessor resource_region: ::String attr_accessor resource_owner: ::String SENSITIVE: [] diff --git a/gems/aws-sdk-internetmonitor/CHANGELOG.md b/gems/aws-sdk-internetmonitor/CHANGELOG.md index d1828e7f02c..16b390a30db 100644 --- a/gems/aws-sdk-internetmonitor/CHANGELOG.md +++ b/gems/aws-sdk-internetmonitor/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.24.0 (2024-08-28) +------------------ + +* Feature - Adds new querying types to show overall traffic suggestion information for monitors + 1.23.0 (2024-07-02) ------------------ diff --git a/gems/aws-sdk-internetmonitor/VERSION b/gems/aws-sdk-internetmonitor/VERSION index a6c2798a482..53cc1a6f929 100644 --- a/gems/aws-sdk-internetmonitor/VERSION +++ b/gems/aws-sdk-internetmonitor/VERSION @@ -1 +1 @@ -1.23.0 +1.24.0 diff --git a/gems/aws-sdk-internetmonitor/aws-sdk-internetmonitor.gemspec b/gems/aws-sdk-internetmonitor/aws-sdk-internetmonitor.gemspec index 9ec107ac914..03c64626753 100644 --- a/gems/aws-sdk-internetmonitor/aws-sdk-internetmonitor.gemspec +++ b/gems/aws-sdk-internetmonitor/aws-sdk-internetmonitor.gemspec @@ -26,7 +26,7 @@ Gem::Specification.new do |spec| } spec.add_dependency('aws-sdk-core', '~> 3', '>= 3.201.0') - spec.add_dependency('aws-sigv4', '~> 1.1') + spec.add_dependency('aws-sigv4', '~> 1.5') spec.required_ruby_version = '>= 2.5' end diff --git a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor.rb b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor.rb index 64cc6ebc532..13d560f7e8b 100644 --- a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor.rb +++ b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor.rb @@ -53,6 +53,6 @@ # @!group service module Aws::InternetMonitor - GEM_VERSION = '1.23.0' + GEM_VERSION = '1.24.0' end diff --git a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client.rb b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client.rb index 9091d922199..c0a9674877c 100644 --- a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client.rb +++ b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client.rb @@ -1290,6 +1290,15 @@ def list_tags_for_resource(params = {}, options = {}) # current configuration, and the best performing EC2 configuration, at # 1 hour intervals. # + # * `OVERALL_TRAFFIC_SUGGESTIONS`: Provides TTFB, using a 30-day + # weighted average, for all traffic in each Amazon Web Services + # location that is monitored. + # + # * `OVERALL_TRAFFIC_SUGGESTIONS_DETAILS`: Provides TTFB, using a 30-day + # weighted average, for each top location, for a proposed Amazon Web + # Services location. Must provide a Amazon Web Services location to + # search. + # # For lists of the fields returned with each query type and more # information about how each type of query is performed, see [ Using the # Amazon CloudWatch Internet Monitor query interface][1] in the Amazon @@ -1336,7 +1345,7 @@ def list_tags_for_resource(params = {}, options = {}) # monitor_name: "ResourceName", # required # start_time: Time.now, # required # end_time: Time.now, # required - # query_type: "MEASUREMENTS", # required, accepts MEASUREMENTS, TOP_LOCATIONS, TOP_LOCATION_DETAILS + # query_type: "MEASUREMENTS", # required, accepts MEASUREMENTS, TOP_LOCATIONS, TOP_LOCATION_DETAILS, OVERALL_TRAFFIC_SUGGESTIONS, OVERALL_TRAFFIC_SUGGESTIONS_DETAILS # filter_parameters: [ # { # field: "String", @@ -1602,7 +1611,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-internetmonitor' - context[:gem_version] = '1.23.0' + context[:gem_version] = '1.24.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client_api.rb b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client_api.rb index e7d1a76ac44..f07c0984769 100644 --- a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client_api.rb +++ b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/client_api.rb @@ -473,9 +473,10 @@ module ClientApi api.metadata = { "apiVersion" => "2021-06-03", + "auth" => ["aws.auth#sigv4"], "endpointPrefix" => "internetmonitor", - "jsonVersion" => "1.1", "protocol" => "rest-json", + "protocols" => ["rest-json"], "serviceFullName" => "Amazon CloudWatch Internet Monitor", "serviceId" => "InternetMonitor", "signatureVersion" => "v4", diff --git a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/types.rb b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/types.rb index 2e1283f7435..124ee3a97f2 100644 --- a/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/types.rb +++ b/gems/aws-sdk-internetmonitor/lib/aws-sdk-internetmonitor/types.rb @@ -1763,6 +1763,15 @@ class S3Config < Struct.new( # current configuration, and the best performing EC2 configuration, # at 1 hour intervals. # + # * `OVERALL_TRAFFIC_SUGGESTIONS`: Provides TTFB, using a 30-day + # weighted average, for all traffic in each Amazon Web Services + # location that is monitored. + # + # * `OVERALL_TRAFFIC_SUGGESTIONS_DETAILS`: Provides TTFB, using a + # 30-day weighted average, for each top location, for a proposed + # Amazon Web Services location. Must provide a Amazon Web Services + # location to search. + # # For lists of the fields returned with each query type and more # information about how each type of query is performed, see [ Using # the Amazon CloudWatch Internet Monitor query interface][1] in the diff --git a/gems/aws-sdk-internetmonitor/sig/client.rbs b/gems/aws-sdk-internetmonitor/sig/client.rbs index 1029e42e968..eed8fbd4048 100644 --- a/gems/aws-sdk-internetmonitor/sig/client.rbs +++ b/gems/aws-sdk-internetmonitor/sig/client.rbs @@ -271,7 +271,7 @@ module Aws monitor_name: ::String, start_time: ::Time, end_time: ::Time, - query_type: ("MEASUREMENTS" | "TOP_LOCATIONS" | "TOP_LOCATION_DETAILS"), + query_type: ("MEASUREMENTS" | "TOP_LOCATIONS" | "TOP_LOCATION_DETAILS" | "OVERALL_TRAFFIC_SUGGESTIONS" | "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS"), ?filter_parameters: Array[ { field: ::String?, diff --git a/gems/aws-sdk-internetmonitor/sig/types.rbs b/gems/aws-sdk-internetmonitor/sig/types.rbs index 52cadd7fc2f..498e75db43c 100644 --- a/gems/aws-sdk-internetmonitor/sig/types.rbs +++ b/gems/aws-sdk-internetmonitor/sig/types.rbs @@ -368,7 +368,7 @@ module Aws::InternetMonitor attr_accessor monitor_name: ::String attr_accessor start_time: ::Time attr_accessor end_time: ::Time - attr_accessor query_type: ("MEASUREMENTS" | "TOP_LOCATIONS" | "TOP_LOCATION_DETAILS") + attr_accessor query_type: ("MEASUREMENTS" | "TOP_LOCATIONS" | "TOP_LOCATION_DETAILS" | "OVERALL_TRAFFIC_SUGGESTIONS" | "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS") attr_accessor filter_parameters: ::Array[Types::FilterParameter] attr_accessor linked_account_id: ::String SENSITIVE: [] diff --git a/gems/aws-sdk-pcs/CHANGELOG.md b/gems/aws-sdk-pcs/CHANGELOG.md new file mode 100644 index 00000000000..48b563e778e --- /dev/null +++ b/gems/aws-sdk-pcs/CHANGELOG.md @@ -0,0 +1,8 @@ +Unreleased Changes +------------------ + +1.0.0 (2024-08-28) +------------------ + +* Feature - Initial release of `aws-sdk-pcs`. + diff --git a/gems/aws-sdk-pcs/LICENSE.txt b/gems/aws-sdk-pcs/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/gems/aws-sdk-pcs/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gems/aws-sdk-pcs/VERSION b/gems/aws-sdk-pcs/VERSION new file mode 100644 index 00000000000..3eefcb9dd5b --- /dev/null +++ b/gems/aws-sdk-pcs/VERSION @@ -0,0 +1 @@ +1.0.0 diff --git a/gems/aws-sdk-pcs/aws-sdk-pcs.gemspec b/gems/aws-sdk-pcs/aws-sdk-pcs.gemspec new file mode 100644 index 00000000000..73b349c7ad9 --- /dev/null +++ b/gems/aws-sdk-pcs/aws-sdk-pcs.gemspec @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +Gem::Specification.new do |spec| + + spec.name = 'aws-sdk-pcs' + spec.version = File.read(File.expand_path('../VERSION', __FILE__)).strip + spec.summary = 'AWS SDK for Ruby - AWS Parallel Computing Service' + spec.description = 'Official AWS Ruby gem for AWS Parallel Computing Service. This gem is part of the AWS SDK for Ruby.' + spec.author = 'Amazon Web Services' + spec.homepage = 'https://github.com/aws/aws-sdk-ruby' + spec.license = 'Apache-2.0' + spec.email = ['aws-dr-rubygems@amazon.com'] + spec.require_paths = ['lib'] + spec.files = Dir["LICENSE.txt", "CHANGELOG.md", "VERSION", "lib/**/*.rb", "sig/**/*.rbs"] + + spec.metadata = { + 'source_code_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-pcs', + 'changelog_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-pcs/CHANGELOG.md' + } + + spec.add_dependency('aws-sdk-core', '~> 3', '>= 3.201.0') + spec.add_dependency('aws-sigv4', '~> 1.5') + + spec.required_ruby_version = '>= 2.5' +end diff --git a/gems/aws-sdk-pcs/features/env.rb b/gems/aws-sdk-pcs/features/env.rb new file mode 100644 index 00000000000..5511608725a --- /dev/null +++ b/gems/aws-sdk-pcs/features/env.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +$:.unshift(File.expand_path('../../lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/features', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__)) + +require 'features_helper' +require 'aws-sdk-pcs' + +Aws::PCS::Client.add_plugin(ApiCallTracker) diff --git a/gems/aws-sdk-pcs/features/step_definitions.rb b/gems/aws-sdk-pcs/features/step_definitions.rb new file mode 100644 index 00000000000..23e38132c15 --- /dev/null +++ b/gems/aws-sdk-pcs/features/step_definitions.rb @@ -0,0 +1,8 @@ +Before("@pcs") do + @service = Aws::PCS::Resource.new + @client = @service.client +end + +After("@pcs") do + # shared cleanup logic +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs.rb new file mode 100644 index 00000000000..fb151736a1f --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + + +require 'aws-sdk-core' +require 'aws-sigv4' + +require_relative 'aws-sdk-pcs/types' +require_relative 'aws-sdk-pcs/client_api' +require_relative 'aws-sdk-pcs/plugins/endpoints.rb' +require_relative 'aws-sdk-pcs/client' +require_relative 'aws-sdk-pcs/errors' +require_relative 'aws-sdk-pcs/waiters' +require_relative 'aws-sdk-pcs/resource' +require_relative 'aws-sdk-pcs/endpoint_parameters' +require_relative 'aws-sdk-pcs/endpoint_provider' +require_relative 'aws-sdk-pcs/endpoints' +require_relative 'aws-sdk-pcs/customizations' + +# This module provides support for AWS Parallel Computing Service. This module is available in the +# `aws-sdk-pcs` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# pcs = Aws::PCS::Client.new +# resp = pcs.create_cluster(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from AWS Parallel Computing Service are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::PCS::Errors::ServiceError +# # rescues all AWS Parallel Computing Service API errors +# end +# +# See {Errors} for more information. +# +# @!group service +module Aws::PCS + + GEM_VERSION = '1.0.0' + +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb new file mode 100644 index 00000000000..2960dc67b05 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client.rb @@ -0,0 +1,1608 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require 'seahorse/client/plugins/content_length.rb' +require 'aws-sdk-core/plugins/credentials_configuration.rb' +require 'aws-sdk-core/plugins/logging.rb' +require 'aws-sdk-core/plugins/param_converter.rb' +require 'aws-sdk-core/plugins/param_validator.rb' +require 'aws-sdk-core/plugins/user_agent.rb' +require 'aws-sdk-core/plugins/helpful_socket_errors.rb' +require 'aws-sdk-core/plugins/retry_errors.rb' +require 'aws-sdk-core/plugins/global_configuration.rb' +require 'aws-sdk-core/plugins/regional_endpoint.rb' +require 'aws-sdk-core/plugins/endpoint_discovery.rb' +require 'aws-sdk-core/plugins/endpoint_pattern.rb' +require 'aws-sdk-core/plugins/response_paging.rb' +require 'aws-sdk-core/plugins/stub_responses.rb' +require 'aws-sdk-core/plugins/idempotency_token.rb' +require 'aws-sdk-core/plugins/invocation_id.rb' +require 'aws-sdk-core/plugins/jsonvalue_converter.rb' +require 'aws-sdk-core/plugins/client_metrics_plugin.rb' +require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb' +require 'aws-sdk-core/plugins/transfer_encoding.rb' +require 'aws-sdk-core/plugins/http_checksum.rb' +require 'aws-sdk-core/plugins/checksum_algorithm.rb' +require 'aws-sdk-core/plugins/request_compression.rb' +require 'aws-sdk-core/plugins/defaults_mode.rb' +require 'aws-sdk-core/plugins/recursion_detection.rb' +require 'aws-sdk-core/plugins/sign.rb' +require 'aws-sdk-core/plugins/protocols/json_rpc.rb' + +Aws::Plugins::GlobalConfiguration.add_identifier(:pcs) + +module Aws::PCS + # An API client for PCS. To construct a client, you need to configure a `:region` and `:credentials`. + # + # client = Aws::PCS::Client.new( + # region: region_name, + # credentials: credentials, + # # ... + # ) + # + # For details on configuring region and credentials see + # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). + # + # See {#initialize} for a full list of supported configuration options. + class Client < Seahorse::Client::Base + + include Aws::ClientStubs + + @identifier = :pcs + + set_api(ClientApi::API) + + add_plugin(Seahorse::Client::Plugins::ContentLength) + add_plugin(Aws::Plugins::CredentialsConfiguration) + add_plugin(Aws::Plugins::Logging) + add_plugin(Aws::Plugins::ParamConverter) + add_plugin(Aws::Plugins::ParamValidator) + add_plugin(Aws::Plugins::UserAgent) + add_plugin(Aws::Plugins::HelpfulSocketErrors) + add_plugin(Aws::Plugins::RetryErrors) + add_plugin(Aws::Plugins::GlobalConfiguration) + add_plugin(Aws::Plugins::RegionalEndpoint) + add_plugin(Aws::Plugins::EndpointDiscovery) + add_plugin(Aws::Plugins::EndpointPattern) + add_plugin(Aws::Plugins::ResponsePaging) + add_plugin(Aws::Plugins::StubResponses) + add_plugin(Aws::Plugins::IdempotencyToken) + add_plugin(Aws::Plugins::InvocationId) + add_plugin(Aws::Plugins::JsonvalueConverter) + add_plugin(Aws::Plugins::ClientMetricsPlugin) + add_plugin(Aws::Plugins::ClientMetricsSendPlugin) + add_plugin(Aws::Plugins::TransferEncoding) + add_plugin(Aws::Plugins::HttpChecksum) + add_plugin(Aws::Plugins::ChecksumAlgorithm) + add_plugin(Aws::Plugins::RequestCompression) + add_plugin(Aws::Plugins::DefaultsMode) + add_plugin(Aws::Plugins::RecursionDetection) + add_plugin(Aws::Plugins::Sign) + add_plugin(Aws::Plugins::Protocols::JsonRpc) + add_plugin(Aws::PCS::Plugins::Endpoints) + + # @overload initialize(options) + # @param [Hash] options + # + # @option options [Array] :plugins ([]]) + # A list of plugins to apply to the client. Each plugin is either a + # class name or an instance of a plugin class. + # + # @option options [required, Aws::CredentialProvider] :credentials + # Your AWS credentials. This can be an instance of any one of the + # following classes: + # + # * `Aws::Credentials` - Used for configuring static, non-refreshing + # credentials. + # + # * `Aws::SharedCredentials` - Used for loading static credentials from a + # shared file, such as `~/.aws/config`. + # + # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. + # + # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to + # assume a role after providing credentials via the web. + # + # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an + # access token generated from `aws login`. + # + # * `Aws::ProcessCredentials` - Used for loading credentials from a + # process that outputs to stdout. + # + # * `Aws::InstanceProfileCredentials` - Used for loading credentials + # from an EC2 IMDS on an EC2 instance. + # + # * `Aws::ECSCredentials` - Used for loading credentials from + # instances running in ECS. + # + # * `Aws::CognitoIdentityCredentials` - Used for loading credentials + # from the Cognito Identity service. + # + # When `:credentials` are not configured directly, the following + # locations will be searched for credentials: + # + # * `Aws.config[:credentials]` + # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. + # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] + # * `~/.aws/credentials` + # * `~/.aws/config` + # * EC2/ECS IMDS instance profile - When used by default, the timeouts + # are very aggressive. Construct and pass an instance of + # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to + # enable retries and extended timeouts. Instance profile credential + # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] + # to true. + # + # @option options [required, String] :region + # The AWS region to connect to. The configured `:region` is + # used to determine the service `:endpoint`. When not passed, + # a default `:region` is searched for in the following locations: + # + # * `Aws.config[:region]` + # * `ENV['AWS_REGION']` + # * `ENV['AMAZON_REGION']` + # * `ENV['AWS_DEFAULT_REGION']` + # * `~/.aws/credentials` + # * `~/.aws/config` + # + # @option options [String] :access_key_id + # + # @option options [Boolean] :active_endpoint_cache (false) + # When set to `true`, a thread polling for endpoints will be running in + # the background every 60 secs (default). Defaults to `false`. + # + # @option options [Boolean] :adaptive_retry_wait_to_fill (true) + # Used only in `adaptive` retry mode. When true, the request will sleep + # until there is sufficent client side capacity to retry the request. + # When false, the request will raise a `RetryCapacityNotAvailableError` and will + # not retry instead of sleeping. + # + # @option options [Boolean] :client_side_monitoring (false) + # When `true`, client-side metrics will be collected for all API requests from + # this client. + # + # @option options [String] :client_side_monitoring_client_id ("") + # Allows you to provide an identifier for this client which will be attached to + # all generated client side metrics. Defaults to an empty string. + # + # @option options [String] :client_side_monitoring_host ("127.0.0.1") + # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client + # side monitoring agent is running on, where client metrics will be published via UDP. + # + # @option options [Integer] :client_side_monitoring_port (31000) + # Required for publishing client metrics. The port that the client side monitoring + # agent is running on, where client metrics will be published via UDP. + # + # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) + # Allows you to provide a custom client-side monitoring publisher class. By default, + # will use the Client Side Monitoring Agent Publisher. + # + # @option options [Boolean] :convert_params (true) + # When `true`, an attempt is made to coerce request parameters into + # the required types. + # + # @option options [Boolean] :correct_clock_skew (true) + # Used only in `standard` and adaptive retry modes. Specifies whether to apply + # a clock skew correction and retry requests with skewed client clocks. + # + # @option options [String] :defaults_mode ("legacy") + # See {Aws::DefaultsModeConfiguration} for a list of the + # accepted modes and the configuration defaults that are included. + # + # @option options [Boolean] :disable_host_prefix_injection (false) + # Set to true to disable SDK automatically adding host prefix + # to default service endpoint when available. + # + # @option options [Boolean] :disable_request_compression (false) + # When set to 'true' the request body will not be compressed + # for supported operations. + # + # @option options [String, URI::HTTPS, URI::HTTP] :endpoint + # Normally you should not configure the `:endpoint` option + # directly. This is normally constructed from the `:region` + # option. Configuring `:endpoint` is normally reserved for + # connecting to test or custom endpoints. The endpoint should + # be a URI formatted like: + # + # 'http://example.com' + # 'https://example.com' + # 'http://example.com:123' + # + # @option options [Integer] :endpoint_cache_max_entries (1000) + # Used for the maximum size limit of the LRU cache storing endpoints data + # for endpoint discovery enabled operations. Defaults to 1000. + # + # @option options [Integer] :endpoint_cache_max_threads (10) + # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. + # + # @option options [Integer] :endpoint_cache_poll_interval (60) + # When :endpoint_discovery and :active_endpoint_cache is enabled, + # Use this option to config the time interval in seconds for making + # requests fetching endpoints information. Defaults to 60 sec. + # + # @option options [Boolean] :endpoint_discovery (false) + # When set to `true`, endpoint discovery will be enabled for operations when available. + # + # @option options [Boolean] :ignore_configured_endpoint_urls + # Setting to true disables use of endpoint URLs provided via environment + # variables and the shared configuration file. + # + # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) + # The log formatter. + # + # @option options [Symbol] :log_level (:info) + # The log level to send messages to the `:logger` at. + # + # @option options [Logger] :logger + # The Logger instance to send log messages to. If this option + # is not set, logging will be disabled. + # + # @option options [Integer] :max_attempts (3) + # An integer representing the maximum number attempts that will be made for + # a single request, including the initial attempt. For example, + # setting this value to 5 will result in a request being retried up to + # 4 times. Used in `standard` and `adaptive` retry modes. + # + # @option options [String] :profile ("default") + # Used when loading credentials from the shared credentials file + # at HOME/.aws/credentials. When not specified, 'default' is used. + # + # @option options [Integer] :request_min_compression_size_bytes (10240) + # The minimum size in bytes that triggers compression for request + # bodies. The value must be non-negative integer value between 0 + # and 10485780 bytes inclusive. + # + # @option options [Proc] :retry_backoff + # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. + # This option is only used in the `legacy` retry mode. + # + # @option options [Float] :retry_base_delay (0.3) + # The base delay in seconds used by the default backoff function. This option + # is only used in the `legacy` retry mode. + # + # @option options [Symbol] :retry_jitter (:none) + # A delay randomiser function used by the default backoff function. + # Some predefined functions can be referenced by name - :none, :equal, :full, + # otherwise a Proc that takes and returns a number. This option is only used + # in the `legacy` retry mode. + # + # @see https://www.awsarchitectureblog.com/2015/03/backoff.html + # + # @option options [Integer] :retry_limit (3) + # The maximum number of times to retry failed requests. Only + # ~ 500 level server errors and certain ~ 400 level client errors + # are retried. Generally, these are throttling errors, data + # checksum errors, networking errors, timeout errors, auth errors, + # endpoint discovery, and errors from expired credentials. + # This option is only used in the `legacy` retry mode. + # + # @option options [Integer] :retry_max_delay (0) + # The maximum number of seconds to delay between retries (0 for no limit) + # used by the default backoff function. This option is only used in the + # `legacy` retry mode. + # + # @option options [String] :retry_mode ("legacy") + # Specifies which retry algorithm to use. Values are: + # + # * `legacy` - The pre-existing retry behavior. This is default value if + # no retry mode is provided. + # + # * `standard` - A standardized set of retry rules across the AWS SDKs. + # This includes support for retry quotas, which limit the number of + # unsuccessful retries a client can make. + # + # * `adaptive` - An experimental retry mode that includes all the + # functionality of `standard` mode along with automatic client side + # throttling. This is a provisional mode that may change behavior + # in the future. + # + # @option options [String] :sdk_ua_app_id + # A unique and opaque application ID that is appended to the + # User-Agent header as app/sdk_ua_app_id. It should have a + # maximum length of 50. This variable is sourced from environment + # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. + # + # @option options [String] :secret_access_key + # + # @option options [String] :session_token + # + # @option options [Array] :sigv4a_signing_region_set + # A list of regions that should be signed with SigV4a signing. When + # not passed, a default `:sigv4a_signing_region_set` is searched for + # in the following locations: + # + # * `Aws.config[:sigv4a_signing_region_set]` + # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']` + # * `~/.aws/config` + # + # @option options [Boolean] :simple_json (false) + # Disables request parameter conversion, validation, and formatting. + # Also disables response data type conversions. The request parameters + # hash must be formatted exactly as the API expects.This option is useful + # when you want to ensure the highest level of performance by avoiding + # overhead of walking request parameters and response data structures. + # + # @option options [Boolean] :stub_responses (false) + # Causes the client to return stubbed responses. By default + # fake responses are generated and returned. You can specify + # the response data to return or errors to raise by calling + # {ClientStubs#stub_responses}. See {ClientStubs} for more information. + # + # ** Please note ** When response stubbing is enabled, no HTTP + # requests are made, and retries are disabled. + # + # @option options [Aws::TokenProvider] :token_provider + # A Bearer Token Provider. This can be an instance of any one of the + # following classes: + # + # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing + # tokens. + # + # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an + # access token generated from `aws login`. + # + # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain` + # will be used to search for tokens configured for your profile in shared configuration files. + # + # @option options [Boolean] :use_dualstack_endpoint + # When set to `true`, dualstack enabled endpoints (with `.aws` TLD) + # will be used if available. + # + # @option options [Boolean] :use_fips_endpoint + # When set to `true`, fips compatible endpoints will be used if available. + # When a `fips` region is used, the region is normalized and this config + # is set to `true`. + # + # @option options [Boolean] :validate_params (true) + # When `true`, request parameters are validated before + # sending the request. + # + # @option options [Aws::PCS::EndpointProvider] :endpoint_provider + # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::PCS::EndpointParameters` + # + # @option options [Float] :http_continue_timeout (1) + # The number of seconds to wait for a 100-continue response before sending the + # request body. This option has no effect unless the request has "Expect" + # header set to "100-continue". Defaults to `nil` which disables this + # behaviour. This value can safely be set per request on the session. + # + # @option options [Float] :http_idle_timeout (5) + # The number of seconds a connection is allowed to sit idle before it + # is considered stale. Stale connections are closed and removed from the + # pool before making a request. + # + # @option options [Float] :http_open_timeout (15) + # The default number of seconds to wait for response data. + # This value can safely be set per-request on the session. + # + # @option options [URI::HTTP,String] :http_proxy + # A proxy to send requests through. Formatted like 'http://proxy.com:123'. + # + # @option options [Float] :http_read_timeout (60) + # The default number of seconds to wait for response data. + # This value can safely be set per-request on the session. + # + # @option options [Boolean] :http_wire_trace (false) + # When `true`, HTTP debug output will be sent to the `:logger`. + # + # @option options [Proc] :on_chunk_received + # When a Proc object is provided, it will be used as callback when each chunk + # of the response body is received. It provides three arguments: the chunk, + # the number of bytes received, and the total number of + # bytes in the response (or nil if the server did not send a `content-length`). + # + # @option options [Proc] :on_chunk_sent + # When a Proc object is provided, it will be used as callback when each chunk + # of the request body is sent. It provides three arguments: the chunk, + # the number of bytes read from the body, and the total number of + # bytes in the body. + # + # @option options [Boolean] :raise_response_errors (true) + # When `true`, response errors are raised. + # + # @option options [String] :ssl_ca_bundle + # Full path to the SSL certificate authority bundle file that should be used when + # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or + # `:ssl_ca_directory` the the system default will be used if available. + # + # @option options [String] :ssl_ca_directory + # Full path of the directory that contains the unbundled SSL certificate + # authority files for verifying peer certificates. If you do + # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system + # default will be used if available. + # + # @option options [String] :ssl_ca_store + # Sets the X509::Store to verify peer certificate. + # + # @option options [Float] :ssl_timeout + # Sets the SSL timeout in seconds + # + # @option options [Boolean] :ssl_verify_peer (true) + # When `true`, SSL peer certificates are verified when establishing a connection. + # + def initialize(*args) + super + end + + # @!group API Operations + + # Creates a cluster in your account. Amazon Web Services PCS creates the + # cluster controller in a service-owned account. The cluster controller + # communicates with the cluster resources in your account. The subnets + # and security groups for the cluster must already exist before you use + # this API action. + # + # It takes time for Amazon Web Services PCS to create the cluster. The + # cluster is in a `Creating` state until it is ready to use. There can + # only be 1 cluster in a `Creating` state per Amazon Web Services Region + # per Amazon Web Services account. `CreateCluster` fails with a + # `ServiceQuotaExceededException` if there is already a cluster in a + # `Creating` state. + # + # + # + # @option params [required, String] :cluster_name + # A name to identify the cluster. Example: `MyCluster` + # + # @option params [required, Types::SchedulerRequest] :scheduler + # The cluster management and job scheduling software associated with the + # cluster. + # + # @option params [required, String] :size + # A value that determines the maximum number of compute nodes in the + # cluster and the maximum number of jobs (active and queued). + # + # * `SMALL`: 32 compute nodes and 256 jobs + # + # * `MEDIUM`: 512 compute nodes and 8192 jobs + # + # * `LARGE`: 2048 compute nodes and 16,384 jobs + # + # @option params [required, Types::NetworkingRequest] :networking + # The networking configuration used to set up the cluster's control + # plane. + # + # @option params [Types::ClusterSlurmConfigurationRequest] :slurm_configuration + # Additional options related to the Slurm scheduler. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @option params [Hash] :tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # + # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateClusterResponse#cluster #cluster} => Types::Cluster + # + # @example Request syntax with placeholder values + # + # resp = client.create_cluster({ + # cluster_name: "ClusterName", # required + # scheduler: { # required + # type: "SLURM", # required, accepts SLURM + # version: "String", # required + # }, + # size: "SMALL", # required, accepts SMALL, MEDIUM, LARGE + # networking: { # required + # subnet_ids: ["SubnetId"], + # security_group_ids: ["SecurityGroupId"], + # }, + # slurm_configuration: { + # scale_down_idle_time_in_seconds: 1, + # slurm_custom_settings: [ + # { + # parameter_name: "String", # required + # parameter_value: "String", # required + # }, + # ], + # }, + # client_token: "SBClientToken", + # tags: { + # "TagKey" => "TagValue", + # }, + # }) + # + # @example Response structure + # + # resp.cluster.name #=> String + # resp.cluster.id #=> String + # resp.cluster.arn #=> String + # resp.cluster.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.cluster.created_at #=> Time + # resp.cluster.modified_at #=> Time + # resp.cluster.scheduler.type #=> String, one of "SLURM" + # resp.cluster.scheduler.version #=> String + # resp.cluster.size #=> String, one of "SMALL", "MEDIUM", "LARGE" + # resp.cluster.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer + # resp.cluster.slurm_configuration.slurm_custom_settings #=> Array + # resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String + # resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String + # resp.cluster.slurm_configuration.auth_key.secret_arn #=> String + # resp.cluster.slurm_configuration.auth_key.secret_version #=> String + # resp.cluster.networking.subnet_ids #=> Array + # resp.cluster.networking.subnet_ids[0] #=> String + # resp.cluster.networking.security_group_ids #=> Array + # resp.cluster.networking.security_group_ids[0] #=> String + # resp.cluster.endpoints #=> Array + # resp.cluster.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD" + # resp.cluster.endpoints[0].private_ip_address #=> String + # resp.cluster.endpoints[0].public_ip_address #=> String + # resp.cluster.endpoints[0].port #=> String + # resp.cluster.error_info #=> Array + # resp.cluster.error_info[0].code #=> String + # resp.cluster.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateCluster AWS API Documentation + # + # @overload create_cluster(params = {}) + # @param [Hash] params ({}) + def create_cluster(params = {}, options = {}) + req = build_request(:create_cluster, params) + req.send_request(options) + end + + # Creates a managed set of compute nodes. You associate a compute node + # group with a cluster through 1 or more Amazon Web Services PCS queues + # or as part of the login fleet. A compute node group includes the + # definition of the compute properties and lifecycle management. Amazon + # Web Services PCS uses the information you provide to this API action + # to launch compute nodes in your account. You can only specify subnets + # in the same Amazon VPC as your cluster. You receive billing charges + # for the compute nodes that Amazon Web Services PCS launches in your + # account. You must already have a launch template before you call this + # API. For more information, see [Launch an instance from a launch + # template][1] in the *Amazon Elastic Compute Cloud User Guide for Linux + # Instances*. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster to create a compute node group in. + # + # @option params [required, String] :compute_node_group_name + # A name to identify the cluster. Example: `MyCluster` + # + # @option params [String] :ami_id + # The ID of the Amazon Machine Image (AMI) that Amazon Web Services PCS + # uses to launch compute nodes (Amazon EC2 instances). If you don't + # provide this value, Amazon Web Services PCS uses the AMI ID specified + # in the custom launch template. + # + # @option params [required, Array] :subnet_ids + # The list of subnet IDs where the compute node group launches + # instances. Subnets must be in the same VPC as the cluster. + # + # @option params [String] :purchase_option + # Specifies how EC2 instances are purchased on your behalf. Amazon Web + # Services PCS supports On-Demand and Spot instances. For more + # information, see [Instance purchasing options][1] in the *Amazon + # Elastic Compute Cloud User Guide*. If you don't provide this option, + # it defaults to On-Demand. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html + # + # @option params [required, Types::CustomLaunchTemplate] :custom_launch_template + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # + # @option params [required, String] :iam_instance_profile_arn + # The Amazon Resource Name (ARN) of the IAM instance profile used to + # pass an IAM role when launching EC2 instances. The role contained in + # your instance profile must have `pcs:RegisterComputeNodeGroupInstance` + # permissions attached in order to provision instances correctly. The + # resource identifier of the ARN must start with `AWSPCS`. For example, + # `arn:aws:iam:123456789012:instance-profile/AWSPCSMyComputeNodeInstanceProfile`. + # + # @option params [required, Types::ScalingConfigurationRequest] :scaling_configuration + # Specifies the boundaries of the compute node group auto scaling. + # + # @option params [required, Array] :instance_configs + # A list of EC2 instance configurations that Amazon Web Services PCS can + # provision in the compute node group. + # + # @option params [Types::SpotOptions] :spot_options + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # + # @option params [Types::ComputeNodeGroupSlurmConfigurationRequest] :slurm_configuration + # Additional options related to the Slurm scheduler. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @option params [Hash] :tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # + # @return [Types::CreateComputeNodeGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateComputeNodeGroupResponse#compute_node_group #compute_node_group} => Types::ComputeNodeGroup + # + # @example Request syntax with placeholder values + # + # resp = client.create_compute_node_group({ + # cluster_identifier: "ClusterIdentifier", # required + # compute_node_group_name: "ComputeNodeGroupName", # required + # ami_id: "AmiId", + # subnet_ids: ["String"], # required + # purchase_option: "ONDEMAND", # accepts ONDEMAND, SPOT + # custom_launch_template: { # required + # id: "String", # required + # version: "String", # required + # }, + # iam_instance_profile_arn: "InstanceProfileArn", # required + # scaling_configuration: { # required + # min_instance_count: 1, # required + # max_instance_count: 1, # required + # }, + # instance_configs: [ # required + # { + # instance_type: "String", + # }, + # ], + # spot_options: { + # allocation_strategy: "lowest-price", # accepts lowest-price, capacity-optimized, price-capacity-optimized + # }, + # slurm_configuration: { + # slurm_custom_settings: [ + # { + # parameter_name: "String", # required + # parameter_value: "String", # required + # }, + # ], + # }, + # client_token: "SBClientToken", + # tags: { + # "TagKey" => "TagValue", + # }, + # }) + # + # @example Response structure + # + # resp.compute_node_group.name #=> String + # resp.compute_node_group.id #=> String + # resp.compute_node_group.arn #=> String + # resp.compute_node_group.cluster_id #=> String + # resp.compute_node_group.created_at #=> Time + # resp.compute_node_group.modified_at #=> Time + # resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED" + # resp.compute_node_group.ami_id #=> String + # resp.compute_node_group.subnet_ids #=> Array + # resp.compute_node_group.subnet_ids[0] #=> String + # resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT" + # resp.compute_node_group.custom_launch_template.id #=> String + # resp.compute_node_group.custom_launch_template.version #=> String + # resp.compute_node_group.iam_instance_profile_arn #=> String + # resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer + # resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer + # resp.compute_node_group.instance_configs #=> Array + # resp.compute_node_group.instance_configs[0].instance_type #=> String + # resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized" + # resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String + # resp.compute_node_group.error_info #=> Array + # resp.compute_node_group.error_info[0].code #=> String + # resp.compute_node_group.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateComputeNodeGroup AWS API Documentation + # + # @overload create_compute_node_group(params = {}) + # @param [Hash] params ({}) + def create_compute_node_group(params = {}, options = {}) + req = build_request(:create_compute_node_group, params) + req.send_request(options) + end + + # Creates a job queue. You must associate 1 or more compute node groups + # with the queue. You can associate 1 compute node group with multiple + # queues. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster for which to create a queue. + # + # @option params [required, String] :queue_name + # A name to identify the queue. + # + # @option params [Array] :compute_node_group_configurations + # The list of compute node group configurations to associate with the + # queue. Queues assign jobs to associated compute node groups. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @option params [Hash] :tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # + # @return [Types::CreateQueueResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateQueueResponse#queue #queue} => Types::Queue + # + # @example Request syntax with placeholder values + # + # resp = client.create_queue({ + # cluster_identifier: "ClusterIdentifier", # required + # queue_name: "QueueName", # required + # compute_node_group_configurations: [ + # { + # compute_node_group_id: "String", + # }, + # ], + # client_token: "SBClientToken", + # tags: { + # "TagKey" => "TagValue", + # }, + # }) + # + # @example Response structure + # + # resp.queue.name #=> String + # resp.queue.id #=> String + # resp.queue.arn #=> String + # resp.queue.cluster_id #=> String + # resp.queue.created_at #=> Time + # resp.queue.modified_at #=> Time + # resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.queue.compute_node_group_configurations #=> Array + # resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String + # resp.queue.error_info #=> Array + # resp.queue.error_info[0].code #=> String + # resp.queue.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateQueue AWS API Documentation + # + # @overload create_queue(params = {}) + # @param [Hash] params ({}) + def create_queue(params = {}, options = {}) + req = build_request(:create_queue, params) + req.send_request(options) + end + + # Deletes a cluster and all its linked resources. You must delete all + # queues and compute node groups associated with the cluster before you + # can delete the cluster. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster to delete. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_cluster({ + # cluster_identifier: "ClusterIdentifier", # required + # client_token: "SBClientToken", + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteCluster AWS API Documentation + # + # @overload delete_cluster(params = {}) + # @param [Hash] params ({}) + def delete_cluster(params = {}, options = {}) + req = build_request(:delete_cluster, params) + req.send_request(options) + end + + # Deletes a compute node group. You must delete all queues associated + # with the compute node group first. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the compute node group. + # + # @option params [required, String] :compute_node_group_identifier + # The name or ID of the compute node group to delete. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_compute_node_group({ + # cluster_identifier: "ClusterIdentifier", # required + # compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required + # client_token: "SBClientToken", + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteComputeNodeGroup AWS API Documentation + # + # @overload delete_compute_node_group(params = {}) + # @param [Hash] params ({}) + def delete_compute_node_group(params = {}, options = {}) + req = build_request(:delete_compute_node_group, params) + req.send_request(options) + end + + # Deletes a job queue. If the compute node group associated with this + # queue isn't associated with any other queues, Amazon Web Services PCS + # terminates all the compute nodes for this queue. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the queue. + # + # @option params [required, String] :queue_identifier + # The name or ID of the queue to delete. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_queue({ + # cluster_identifier: "ClusterIdentifier", # required + # queue_identifier: "QueueIdentifier", # required + # client_token: "SBClientToken", + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteQueue AWS API Documentation + # + # @overload delete_queue(params = {}) + # @param [Hash] params ({}) + def delete_queue(params = {}, options = {}) + req = build_request(:delete_queue, params) + req.send_request(options) + end + + # Returns detailed information about a running cluster in your account. + # This API action provides networking information, endpoint information + # for communication with the scheduler, and provisioning status. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the queue. + # + # @return [Types::GetClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetClusterResponse#cluster #cluster} => Types::Cluster + # + # @example Request syntax with placeholder values + # + # resp = client.get_cluster({ + # cluster_identifier: "ClusterIdentifier", # required + # }) + # + # @example Response structure + # + # resp.cluster.name #=> String + # resp.cluster.id #=> String + # resp.cluster.arn #=> String + # resp.cluster.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.cluster.created_at #=> Time + # resp.cluster.modified_at #=> Time + # resp.cluster.scheduler.type #=> String, one of "SLURM" + # resp.cluster.scheduler.version #=> String + # resp.cluster.size #=> String, one of "SMALL", "MEDIUM", "LARGE" + # resp.cluster.slurm_configuration.scale_down_idle_time_in_seconds #=> Integer + # resp.cluster.slurm_configuration.slurm_custom_settings #=> Array + # resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String + # resp.cluster.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String + # resp.cluster.slurm_configuration.auth_key.secret_arn #=> String + # resp.cluster.slurm_configuration.auth_key.secret_version #=> String + # resp.cluster.networking.subnet_ids #=> Array + # resp.cluster.networking.subnet_ids[0] #=> String + # resp.cluster.networking.security_group_ids #=> Array + # resp.cluster.networking.security_group_ids[0] #=> String + # resp.cluster.endpoints #=> Array + # resp.cluster.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD" + # resp.cluster.endpoints[0].private_ip_address #=> String + # resp.cluster.endpoints[0].public_ip_address #=> String + # resp.cluster.endpoints[0].port #=> String + # resp.cluster.error_info #=> Array + # resp.cluster.error_info[0].code #=> String + # resp.cluster.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetCluster AWS API Documentation + # + # @overload get_cluster(params = {}) + # @param [Hash] params ({}) + def get_cluster(params = {}, options = {}) + req = build_request(:get_cluster, params) + req.send_request(options) + end + + # Returns detailed information about a compute node group. This API + # action provides networking information, EC2 instance type, compute + # node group status, and scheduler (such as Slurm) configuration. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster. + # + # @option params [required, String] :compute_node_group_identifier + # The name or ID of the compute node group. + # + # @return [Types::GetComputeNodeGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetComputeNodeGroupResponse#compute_node_group #compute_node_group} => Types::ComputeNodeGroup + # + # @example Request syntax with placeholder values + # + # resp = client.get_compute_node_group({ + # cluster_identifier: "ClusterIdentifier", # required + # compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required + # }) + # + # @example Response structure + # + # resp.compute_node_group.name #=> String + # resp.compute_node_group.id #=> String + # resp.compute_node_group.arn #=> String + # resp.compute_node_group.cluster_id #=> String + # resp.compute_node_group.created_at #=> Time + # resp.compute_node_group.modified_at #=> Time + # resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED" + # resp.compute_node_group.ami_id #=> String + # resp.compute_node_group.subnet_ids #=> Array + # resp.compute_node_group.subnet_ids[0] #=> String + # resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT" + # resp.compute_node_group.custom_launch_template.id #=> String + # resp.compute_node_group.custom_launch_template.version #=> String + # resp.compute_node_group.iam_instance_profile_arn #=> String + # resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer + # resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer + # resp.compute_node_group.instance_configs #=> Array + # resp.compute_node_group.instance_configs[0].instance_type #=> String + # resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized" + # resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String + # resp.compute_node_group.error_info #=> Array + # resp.compute_node_group.error_info[0].code #=> String + # resp.compute_node_group.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetComputeNodeGroup AWS API Documentation + # + # @overload get_compute_node_group(params = {}) + # @param [Hash] params ({}) + def get_compute_node_group(params = {}, options = {}) + req = build_request(:get_compute_node_group, params) + req.send_request(options) + end + + # Returns detailed information about a queue. The information includes + # the compute node groups that the queue uses to schedule jobs. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the queue. + # + # @option params [required, String] :queue_identifier + # The name or ID of the queue. + # + # @return [Types::GetQueueResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetQueueResponse#queue #queue} => Types::Queue + # + # @example Request syntax with placeholder values + # + # resp = client.get_queue({ + # cluster_identifier: "ClusterIdentifier", # required + # queue_identifier: "QueueIdentifier", # required + # }) + # + # @example Response structure + # + # resp.queue.name #=> String + # resp.queue.id #=> String + # resp.queue.arn #=> String + # resp.queue.cluster_id #=> String + # resp.queue.created_at #=> Time + # resp.queue.modified_at #=> Time + # resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.queue.compute_node_group_configurations #=> Array + # resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String + # resp.queue.error_info #=> Array + # resp.queue.error_info[0].code #=> String + # resp.queue.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetQueue AWS API Documentation + # + # @overload get_queue(params = {}) + # @param [Hash] params ({}) + def get_queue(params = {}, options = {}) + req = build_request(:get_queue, params) + req.send_request(options) + end + + # Returns a list of running clusters in your account. + # + # @option params [String] :next_token + # The value of `nextToken` is a unique pagination token for each page of + # results returned. If `nextToken` is returned, there are more results + # available. Make the call again using the returned token to retrieve + # the next page. Keep all other arguments unchanged. Each pagination + # token expires after 24 hours. Using an expired pagination token + # returns an `HTTP 400 InvalidToken` error. + # + # @option params [Integer] :max_results + # The maximum number of results that are returned per call. You can use + # `nextToken` to obtain further pages of results. The default is 10 + # results, and the maximum allowed page size is 100 results. A value of + # 0 uses the default. + # + # @return [Types::ListClustersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListClustersResponse#clusters #clusters} => Array<Types::ClusterSummary> + # * {Types::ListClustersResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_clusters({ + # next_token: "String", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.clusters #=> Array + # resp.clusters[0].name #=> String + # resp.clusters[0].id #=> String + # resp.clusters[0].arn #=> String + # resp.clusters[0].created_at #=> Time + # resp.clusters[0].modified_at #=> Time + # resp.clusters[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListClusters AWS API Documentation + # + # @overload list_clusters(params = {}) + # @param [Hash] params ({}) + def list_clusters(params = {}, options = {}) + req = build_request(:list_clusters, params) + req.send_request(options) + end + + # Returns a list of all compute node groups associated with a cluster. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster to list compute node groups for. + # + # @option params [String] :next_token + # The value of `nextToken` is a unique pagination token for each page of + # results returned. If `nextToken` is returned, there are more results + # available. Make the call again using the returned token to retrieve + # the next page. Keep all other arguments unchanged. Each pagination + # token expires after 24 hours. Using an expired pagination token + # returns an `HTTP 400 InvalidToken` error. + # + # @option params [Integer] :max_results + # The maximum number of results that are returned per call. You can use + # `nextToken` to obtain further pages of results. The default is 10 + # results, and the maximum allowed page size is 100 results. A value of + # 0 uses the default. + # + # @return [Types::ListComputeNodeGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListComputeNodeGroupsResponse#compute_node_groups #compute_node_groups} => Array<Types::ComputeNodeGroupSummary> + # * {Types::ListComputeNodeGroupsResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_compute_node_groups({ + # cluster_identifier: "ClusterIdentifier", # required + # next_token: "String", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.compute_node_groups #=> Array + # resp.compute_node_groups[0].name #=> String + # resp.compute_node_groups[0].id #=> String + # resp.compute_node_groups[0].arn #=> String + # resp.compute_node_groups[0].cluster_id #=> String + # resp.compute_node_groups[0].created_at #=> Time + # resp.compute_node_groups[0].modified_at #=> Time + # resp.compute_node_groups[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListComputeNodeGroups AWS API Documentation + # + # @overload list_compute_node_groups(params = {}) + # @param [Hash] params ({}) + def list_compute_node_groups(params = {}, options = {}) + req = build_request(:list_compute_node_groups, params) + req.send_request(options) + end + + # Returns a list of all queues associated with a cluster. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster to list queues for. + # + # @option params [String] :next_token + # The value of `nextToken` is a unique pagination token for each page of + # results returned. If `nextToken` is returned, there are more results + # available. Make the call again using the returned token to retrieve + # the next page. Keep all other arguments unchanged. Each pagination + # token expires after 24 hours. Using an expired pagination token + # returns an `HTTP 400 InvalidToken` error. + # + # @option params [Integer] :max_results + # The maximum number of results that are returned per call. You can use + # `nextToken` to obtain further pages of results. The default is 10 + # results, and the maximum allowed page size is 100 results. A value of + # 0 uses the default. + # + # @return [Types::ListQueuesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListQueuesResponse#queues #queues} => Array<Types::QueueSummary> + # * {Types::ListQueuesResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_queues({ + # cluster_identifier: "ClusterIdentifier", # required + # next_token: "String", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.queues #=> Array + # resp.queues[0].name #=> String + # resp.queues[0].id #=> String + # resp.queues[0].arn #=> String + # resp.queues[0].cluster_id #=> String + # resp.queues[0].created_at #=> Time + # resp.queues[0].modified_at #=> Time + # resp.queues[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListQueues AWS API Documentation + # + # @overload list_queues(params = {}) + # @param [Hash] params ({}) + def list_queues(params = {}, options = {}) + req = build_request(:list_queues, params) + req.send_request(options) + end + + # Returns a list of all tags on an Amazon Web Services PCS resource. + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource for which to list tags. + # + # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListTagsForResourceResponse#tags #tags} => Hash<String,String> + # + # @example Request syntax with placeholder values + # + # resp = client.list_tags_for_resource({ + # resource_arn: "Arn", # required + # }) + # + # @example Response structure + # + # resp.tags #=> Hash + # resp.tags["TagKey"] #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListTagsForResource AWS API Documentation + # + # @overload list_tags_for_resource(params = {}) + # @param [Hash] params ({}) + def list_tags_for_resource(params = {}, options = {}) + req = build_request(:list_tags_for_resource, params) + req.send_request(options) + end + + # This API action isn't intended for you to use. + # + # Amazon Web Services PCS uses this API action to register the compute + # nodes it launches in your account. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster to register the compute node group + # instance in. + # + # @option params [required, String] :bootstrap_id + # The client-generated token to allow for retries. + # + # @return [Types::RegisterComputeNodeGroupInstanceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::RegisterComputeNodeGroupInstanceResponse#node_id #node_id} => String + # * {Types::RegisterComputeNodeGroupInstanceResponse#shared_secret #shared_secret} => String + # * {Types::RegisterComputeNodeGroupInstanceResponse#endpoints #endpoints} => Array<Types::Endpoint> + # + # @example Request syntax with placeholder values + # + # resp = client.register_compute_node_group_instance({ + # cluster_identifier: "ClusterIdentifier", # required + # bootstrap_id: "BootstrapId", # required + # }) + # + # @example Response structure + # + # resp.node_id #=> String + # resp.shared_secret #=> String + # resp.endpoints #=> Array + # resp.endpoints[0].type #=> String, one of "SLURMCTLD", "SLURMDBD" + # resp.endpoints[0].private_ip_address #=> String + # resp.endpoints[0].public_ip_address #=> String + # resp.endpoints[0].port #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/RegisterComputeNodeGroupInstance AWS API Documentation + # + # @overload register_compute_node_group_instance(params = {}) + # @param [Hash] params ({}) + def register_compute_node_group_instance(params = {}, options = {}) + req = build_request(:register_compute_node_group_instance, params) + req.send_request(options) + end + + # Adds or edits tags on an Amazon Web Services PCS resource. Each tag + # consists of a tag key and a tag value. The tag key and tag value are + # case-sensitive strings. The tag value can be an empty (null) string. + # To add a tag, specify a new tag key and a tag value. To edit a tag, + # specify an existing tag key and a new tag value. + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource. + # + # @option params [required, Hash] :tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.tag_resource({ + # resource_arn: "Arn", # required + # tags: { # required + # "TagKey" => "TagValue", + # }, + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/TagResource AWS API Documentation + # + # @overload tag_resource(params = {}) + # @param [Hash] params ({}) + def tag_resource(params = {}, options = {}) + req = build_request(:tag_resource, params) + req.send_request(options) + end + + # Deletes tags from an Amazon Web Services PCS resource. To delete a + # tag, specify the tag key and the Amazon Resource Name (ARN) of the + # Amazon Web Services PCS resource. + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource. + # + # @option params [required, Array] :tag_keys + # 1 or more tag keys to remove from the resource. Specify only tag keys + # and not tag values. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.untag_resource({ + # resource_arn: "Arn", # required + # tag_keys: ["TagKey"], # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UntagResource AWS API Documentation + # + # @overload untag_resource(params = {}) + # @param [Hash] params ({}) + def untag_resource(params = {}, options = {}) + req = build_request(:untag_resource, params) + req.send_request(options) + end + + # Updates a compute node group. You can update many of the fields + # related to your compute node group including the configurations for + # networking, compute nodes, and settings specific to your scheduler + # (such as Slurm). + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the compute node group. + # + # @option params [required, String] :compute_node_group_identifier + # The name or ID of the compute node group. + # + # @option params [String] :ami_id + # The ID of the Amazon Machine Image (AMI) that Amazon Web Services PCS + # uses to launch instances. If not provided, Amazon Web Services PCS + # uses the AMI ID specified in the custom launch template. + # + # @option params [Array] :subnet_ids + # The list of subnet IDs where the compute node group provisions + # instances. The subnets must be in the same VPC as the cluster. + # + # @option params [Types::CustomLaunchTemplate] :custom_launch_template + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # + # @option params [String] :purchase_option + # Specifies how EC2 instances are purchased on your behalf. Amazon Web + # Services PCS supports On-Demand and Spot instances. For more + # information, see [Instance purchasing options][1] in the *Amazon + # Elastic Compute Cloud User Guide*. If you don't provide this option, + # it defaults to On-Demand. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html + # + # @option params [Types::SpotOptions] :spot_options + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # + # @option params [Types::ScalingConfigurationRequest] :scaling_configuration + # Specifies the boundaries of the compute node group auto scaling. + # + # @option params [String] :iam_instance_profile_arn + # The Amazon Resource Name (ARN) of the IAM instance profile used to + # pass an IAM role when launching EC2 instances. The role contained in + # your instance profile must have `pcs:RegisterComputeNodeGroupInstance` + # permissions attached to provision instances correctly. + # + # @option params [Types::UpdateComputeNodeGroupSlurmConfigurationRequest] :slurm_configuration + # Additional options related to the Slurm scheduler. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::UpdateComputeNodeGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateComputeNodeGroupResponse#compute_node_group #compute_node_group} => Types::ComputeNodeGroup + # + # @example Request syntax with placeholder values + # + # resp = client.update_compute_node_group({ + # cluster_identifier: "ClusterIdentifier", # required + # compute_node_group_identifier: "ComputeNodeGroupIdentifier", # required + # ami_id: "AmiId", + # subnet_ids: ["String"], + # custom_launch_template: { + # id: "String", # required + # version: "String", # required + # }, + # purchase_option: "ONDEMAND", # accepts ONDEMAND, SPOT + # spot_options: { + # allocation_strategy: "lowest-price", # accepts lowest-price, capacity-optimized, price-capacity-optimized + # }, + # scaling_configuration: { + # min_instance_count: 1, # required + # max_instance_count: 1, # required + # }, + # iam_instance_profile_arn: "InstanceProfileArn", + # slurm_configuration: { + # slurm_custom_settings: [ + # { + # parameter_name: "String", # required + # parameter_value: "String", # required + # }, + # ], + # }, + # client_token: "SBClientToken", + # }) + # + # @example Response structure + # + # resp.compute_node_group.name #=> String + # resp.compute_node_group.id #=> String + # resp.compute_node_group.arn #=> String + # resp.compute_node_group.cluster_id #=> String + # resp.compute_node_group.created_at #=> Time + # resp.compute_node_group.modified_at #=> Time + # resp.compute_node_group.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED", "DELETED" + # resp.compute_node_group.ami_id #=> String + # resp.compute_node_group.subnet_ids #=> Array + # resp.compute_node_group.subnet_ids[0] #=> String + # resp.compute_node_group.purchase_option #=> String, one of "ONDEMAND", "SPOT" + # resp.compute_node_group.custom_launch_template.id #=> String + # resp.compute_node_group.custom_launch_template.version #=> String + # resp.compute_node_group.iam_instance_profile_arn #=> String + # resp.compute_node_group.scaling_configuration.min_instance_count #=> Integer + # resp.compute_node_group.scaling_configuration.max_instance_count #=> Integer + # resp.compute_node_group.instance_configs #=> Array + # resp.compute_node_group.instance_configs[0].instance_type #=> String + # resp.compute_node_group.spot_options.allocation_strategy #=> String, one of "lowest-price", "capacity-optimized", "price-capacity-optimized" + # resp.compute_node_group.slurm_configuration.slurm_custom_settings #=> Array + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_name #=> String + # resp.compute_node_group.slurm_configuration.slurm_custom_settings[0].parameter_value #=> String + # resp.compute_node_group.error_info #=> Array + # resp.compute_node_group.error_info[0].code #=> String + # resp.compute_node_group.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateComputeNodeGroup AWS API Documentation + # + # @overload update_compute_node_group(params = {}) + # @param [Hash] params ({}) + def update_compute_node_group(params = {}, options = {}) + req = build_request(:update_compute_node_group, params) + req.send_request(options) + end + + # Updates the compute node group configuration of a queue. Use this API + # to change the compute node groups that the queue can send jobs to. + # + # @option params [required, String] :cluster_identifier + # The name or ID of the cluster of the queue. + # + # @option params [required, String] :queue_identifier + # The name or ID of the queue. + # + # @option params [Array] :compute_node_group_configurations + # The list of compute node group configurations to associate with the + # queue. Queues assign jobs to associated compute node groups. + # + # @option params [String] :client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::UpdateQueueResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateQueueResponse#queue #queue} => Types::Queue + # + # @example Request syntax with placeholder values + # + # resp = client.update_queue({ + # cluster_identifier: "ClusterIdentifier", # required + # queue_identifier: "QueueIdentifier", # required + # compute_node_group_configurations: [ + # { + # compute_node_group_id: "String", + # }, + # ], + # client_token: "SBClientToken", + # }) + # + # @example Response structure + # + # resp.queue.name #=> String + # resp.queue.id #=> String + # resp.queue.arn #=> String + # resp.queue.cluster_id #=> String + # resp.queue.created_at #=> Time + # resp.queue.modified_at #=> Time + # resp.queue.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "UPDATE_FAILED" + # resp.queue.compute_node_group_configurations #=> Array + # resp.queue.compute_node_group_configurations[0].compute_node_group_id #=> String + # resp.queue.error_info #=> Array + # resp.queue.error_info[0].code #=> String + # resp.queue.error_info[0].message #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateQueue AWS API Documentation + # + # @overload update_queue(params = {}) + # @param [Hash] params ({}) + def update_queue(params = {}, options = {}) + req = build_request(:update_queue, params) + req.send_request(options) + end + + # @!endgroup + + # @param params ({}) + # @api private + def build_request(operation_name, params = {}) + handlers = @handlers.for(operation_name) + context = Seahorse::Client::RequestContext.new( + operation_name: operation_name, + operation: config.api.operation(operation_name), + client: self, + params: params, + config: config) + context[:gem_name] = 'aws-sdk-pcs' + context[:gem_version] = '1.0.0' + Seahorse::Client::Request.new(handlers, context) + end + + # @api private + # @deprecated + def waiter_names + [] + end + + class << self + + # @api private + attr_reader :identifier + + # @api private + def errors_module + Errors + end + + end + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client_api.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client_api.rb new file mode 100644 index 00000000000..7a9c44f88f9 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/client_api.rb @@ -0,0 +1,777 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + # @api private + module ClientApi + + include Seahorse::Model + + AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException') + AmiId = Shapes::StringShape.new(name: 'AmiId') + Arn = Shapes::StringShape.new(name: 'Arn') + BootstrapId = Shapes::StringShape.new(name: 'BootstrapId') + Cluster = Shapes::StructureShape.new(name: 'Cluster') + ClusterIdentifier = Shapes::StringShape.new(name: 'ClusterIdentifier') + ClusterList = Shapes::ListShape.new(name: 'ClusterList') + ClusterName = Shapes::StringShape.new(name: 'ClusterName') + ClusterSlurmConfiguration = Shapes::StructureShape.new(name: 'ClusterSlurmConfiguration') + ClusterSlurmConfigurationRequest = Shapes::StructureShape.new(name: 'ClusterSlurmConfigurationRequest') + ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger = Shapes::IntegerShape.new(name: 'ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger') + ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger = Shapes::IntegerShape.new(name: 'ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger') + ClusterStatus = Shapes::StringShape.new(name: 'ClusterStatus') + ClusterSummary = Shapes::StructureShape.new(name: 'ClusterSummary') + ComputeNodeGroup = Shapes::StructureShape.new(name: 'ComputeNodeGroup') + ComputeNodeGroupConfiguration = Shapes::StructureShape.new(name: 'ComputeNodeGroupConfiguration') + ComputeNodeGroupConfigurationList = Shapes::ListShape.new(name: 'ComputeNodeGroupConfigurationList') + ComputeNodeGroupIdentifier = Shapes::StringShape.new(name: 'ComputeNodeGroupIdentifier') + ComputeNodeGroupList = Shapes::ListShape.new(name: 'ComputeNodeGroupList') + ComputeNodeGroupName = Shapes::StringShape.new(name: 'ComputeNodeGroupName') + ComputeNodeGroupSlurmConfiguration = Shapes::StructureShape.new(name: 'ComputeNodeGroupSlurmConfiguration') + ComputeNodeGroupSlurmConfigurationRequest = Shapes::StructureShape.new(name: 'ComputeNodeGroupSlurmConfigurationRequest') + ComputeNodeGroupStatus = Shapes::StringShape.new(name: 'ComputeNodeGroupStatus') + ComputeNodeGroupSummary = Shapes::StructureShape.new(name: 'ComputeNodeGroupSummary') + ConflictException = Shapes::StructureShape.new(name: 'ConflictException') + CreateClusterRequest = Shapes::StructureShape.new(name: 'CreateClusterRequest') + CreateClusterResponse = Shapes::StructureShape.new(name: 'CreateClusterResponse') + CreateComputeNodeGroupRequest = Shapes::StructureShape.new(name: 'CreateComputeNodeGroupRequest') + CreateComputeNodeGroupResponse = Shapes::StructureShape.new(name: 'CreateComputeNodeGroupResponse') + CreateQueueRequest = Shapes::StructureShape.new(name: 'CreateQueueRequest') + CreateQueueResponse = Shapes::StructureShape.new(name: 'CreateQueueResponse') + CustomLaunchTemplate = Shapes::StructureShape.new(name: 'CustomLaunchTemplate') + DeleteClusterRequest = Shapes::StructureShape.new(name: 'DeleteClusterRequest') + DeleteClusterResponse = Shapes::StructureShape.new(name: 'DeleteClusterResponse') + DeleteComputeNodeGroupRequest = Shapes::StructureShape.new(name: 'DeleteComputeNodeGroupRequest') + DeleteComputeNodeGroupResponse = Shapes::StructureShape.new(name: 'DeleteComputeNodeGroupResponse') + DeleteQueueRequest = Shapes::StructureShape.new(name: 'DeleteQueueRequest') + DeleteQueueResponse = Shapes::StructureShape.new(name: 'DeleteQueueResponse') + Endpoint = Shapes::StructureShape.new(name: 'Endpoint') + EndpointType = Shapes::StringShape.new(name: 'EndpointType') + Endpoints = Shapes::ListShape.new(name: 'Endpoints') + ErrorInfo = Shapes::StructureShape.new(name: 'ErrorInfo') + ErrorInfoList = Shapes::ListShape.new(name: 'ErrorInfoList') + GetClusterRequest = Shapes::StructureShape.new(name: 'GetClusterRequest') + GetClusterResponse = Shapes::StructureShape.new(name: 'GetClusterResponse') + GetComputeNodeGroupRequest = Shapes::StructureShape.new(name: 'GetComputeNodeGroupRequest') + GetComputeNodeGroupResponse = Shapes::StructureShape.new(name: 'GetComputeNodeGroupResponse') + GetQueueRequest = Shapes::StructureShape.new(name: 'GetQueueRequest') + GetQueueResponse = Shapes::StructureShape.new(name: 'GetQueueResponse') + InstanceConfig = Shapes::StructureShape.new(name: 'InstanceConfig') + InstanceList = Shapes::ListShape.new(name: 'InstanceList') + InstanceProfileArn = Shapes::StringShape.new(name: 'InstanceProfileArn') + Integer = Shapes::IntegerShape.new(name: 'Integer') + InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException') + ListClustersRequest = Shapes::StructureShape.new(name: 'ListClustersRequest') + ListClustersResponse = Shapes::StructureShape.new(name: 'ListClustersResponse') + ListComputeNodeGroupsRequest = Shapes::StructureShape.new(name: 'ListComputeNodeGroupsRequest') + ListComputeNodeGroupsResponse = Shapes::StructureShape.new(name: 'ListComputeNodeGroupsResponse') + ListQueuesRequest = Shapes::StructureShape.new(name: 'ListQueuesRequest') + ListQueuesResponse = Shapes::StructureShape.new(name: 'ListQueuesResponse') + ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') + ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse') + MaxResults = Shapes::IntegerShape.new(name: 'MaxResults') + Networking = Shapes::StructureShape.new(name: 'Networking') + NetworkingRequest = Shapes::StructureShape.new(name: 'NetworkingRequest') + PurchaseOption = Shapes::StringShape.new(name: 'PurchaseOption') + Queue = Shapes::StructureShape.new(name: 'Queue') + QueueIdentifier = Shapes::StringShape.new(name: 'QueueIdentifier') + QueueList = Shapes::ListShape.new(name: 'QueueList') + QueueName = Shapes::StringShape.new(name: 'QueueName') + QueueStatus = Shapes::StringShape.new(name: 'QueueStatus') + QueueSummary = Shapes::StructureShape.new(name: 'QueueSummary') + RegisterComputeNodeGroupInstanceRequest = Shapes::StructureShape.new(name: 'RegisterComputeNodeGroupInstanceRequest') + RegisterComputeNodeGroupInstanceResponse = Shapes::StructureShape.new(name: 'RegisterComputeNodeGroupInstanceResponse') + RequestTagMap = Shapes::MapShape.new(name: 'RequestTagMap') + ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') + ResponseTagMap = Shapes::MapShape.new(name: 'ResponseTagMap') + SBClientToken = Shapes::StringShape.new(name: 'SBClientToken') + ScalingConfiguration = Shapes::StructureShape.new(name: 'ScalingConfiguration') + ScalingConfigurationMaxInstanceCountInteger = Shapes::IntegerShape.new(name: 'ScalingConfigurationMaxInstanceCountInteger') + ScalingConfigurationMinInstanceCountInteger = Shapes::IntegerShape.new(name: 'ScalingConfigurationMinInstanceCountInteger') + ScalingConfigurationRequest = Shapes::StructureShape.new(name: 'ScalingConfigurationRequest') + ScalingConfigurationRequestMaxInstanceCountInteger = Shapes::IntegerShape.new(name: 'ScalingConfigurationRequestMaxInstanceCountInteger') + ScalingConfigurationRequestMinInstanceCountInteger = Shapes::IntegerShape.new(name: 'ScalingConfigurationRequestMinInstanceCountInteger') + Scheduler = Shapes::StructureShape.new(name: 'Scheduler') + SchedulerRequest = Shapes::StructureShape.new(name: 'SchedulerRequest') + SchedulerType = Shapes::StringShape.new(name: 'SchedulerType') + SecurityGroupId = Shapes::StringShape.new(name: 'SecurityGroupId') + SecurityGroupIdList = Shapes::ListShape.new(name: 'SecurityGroupIdList') + ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException') + SharedSecret = Shapes::StringShape.new(name: 'SharedSecret') + Size = Shapes::StringShape.new(name: 'Size') + SlurmAuthKey = Shapes::StructureShape.new(name: 'SlurmAuthKey') + SlurmCustomSetting = Shapes::StructureShape.new(name: 'SlurmCustomSetting') + SlurmCustomSettings = Shapes::ListShape.new(name: 'SlurmCustomSettings') + SpotAllocationStrategy = Shapes::StringShape.new(name: 'SpotAllocationStrategy') + SpotOptions = Shapes::StructureShape.new(name: 'SpotOptions') + String = Shapes::StringShape.new(name: 'String') + StringList = Shapes::ListShape.new(name: 'StringList') + SubnetId = Shapes::StringShape.new(name: 'SubnetId') + SubnetIdList = Shapes::ListShape.new(name: 'SubnetIdList') + SyntheticTimestamp_date_time = Shapes::TimestampShape.new(name: 'SyntheticTimestamp_date_time', timestampFormat: "iso8601") + TagKey = Shapes::StringShape.new(name: 'TagKey') + TagKeys = Shapes::ListShape.new(name: 'TagKeys') + TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest') + TagValue = Shapes::StringShape.new(name: 'TagValue') + ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException') + UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') + UpdateComputeNodeGroupRequest = Shapes::StructureShape.new(name: 'UpdateComputeNodeGroupRequest') + UpdateComputeNodeGroupResponse = Shapes::StructureShape.new(name: 'UpdateComputeNodeGroupResponse') + UpdateComputeNodeGroupSlurmConfigurationRequest = Shapes::StructureShape.new(name: 'UpdateComputeNodeGroupSlurmConfigurationRequest') + UpdateQueueRequest = Shapes::StructureShape.new(name: 'UpdateQueueRequest') + UpdateQueueResponse = Shapes::StructureShape.new(name: 'UpdateQueueResponse') + ValidationException = Shapes::StructureShape.new(name: 'ValidationException') + ValidationExceptionField = Shapes::StructureShape.new(name: 'ValidationExceptionField') + ValidationExceptionFieldList = Shapes::ListShape.new(name: 'ValidationExceptionFieldList') + ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason') + + AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + AccessDeniedException.struct_class = Types::AccessDeniedException + + Cluster.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name")) + Cluster.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + Cluster.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + Cluster.add_member(:status, Shapes::ShapeRef.new(shape: ClusterStatus, required: true, location_name: "status")) + Cluster.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + Cluster.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + Cluster.add_member(:scheduler, Shapes::ShapeRef.new(shape: Scheduler, required: true, location_name: "scheduler")) + Cluster.add_member(:size, Shapes::ShapeRef.new(shape: Size, required: true, location_name: "size")) + Cluster.add_member(:slurm_configuration, Shapes::ShapeRef.new(shape: ClusterSlurmConfiguration, location_name: "slurmConfiguration")) + Cluster.add_member(:networking, Shapes::ShapeRef.new(shape: Networking, required: true, location_name: "networking")) + Cluster.add_member(:endpoints, Shapes::ShapeRef.new(shape: Endpoints, location_name: "endpoints")) + Cluster.add_member(:error_info, Shapes::ShapeRef.new(shape: ErrorInfoList, location_name: "errorInfo")) + Cluster.struct_class = Types::Cluster + + ClusterList.member = Shapes::ShapeRef.new(shape: ClusterSummary) + + ClusterSlurmConfiguration.add_member(:scale_down_idle_time_in_seconds, Shapes::ShapeRef.new(shape: ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger, location_name: "scaleDownIdleTimeInSeconds")) + ClusterSlurmConfiguration.add_member(:slurm_custom_settings, Shapes::ShapeRef.new(shape: SlurmCustomSettings, location_name: "slurmCustomSettings")) + ClusterSlurmConfiguration.add_member(:auth_key, Shapes::ShapeRef.new(shape: SlurmAuthKey, location_name: "authKey")) + ClusterSlurmConfiguration.struct_class = Types::ClusterSlurmConfiguration + + ClusterSlurmConfigurationRequest.add_member(:scale_down_idle_time_in_seconds, Shapes::ShapeRef.new(shape: ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger, location_name: "scaleDownIdleTimeInSeconds")) + ClusterSlurmConfigurationRequest.add_member(:slurm_custom_settings, Shapes::ShapeRef.new(shape: SlurmCustomSettings, location_name: "slurmCustomSettings")) + ClusterSlurmConfigurationRequest.struct_class = Types::ClusterSlurmConfigurationRequest + + ClusterSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name")) + ClusterSummary.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + ClusterSummary.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + ClusterSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + ClusterSummary.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + ClusterSummary.add_member(:status, Shapes::ShapeRef.new(shape: ClusterStatus, required: true, location_name: "status")) + ClusterSummary.struct_class = Types::ClusterSummary + + ComputeNodeGroup.add_member(:name, Shapes::ShapeRef.new(shape: ComputeNodeGroupName, required: true, location_name: "name")) + ComputeNodeGroup.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + ComputeNodeGroup.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + ComputeNodeGroup.add_member(:cluster_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "clusterId")) + ComputeNodeGroup.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + ComputeNodeGroup.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + ComputeNodeGroup.add_member(:status, Shapes::ShapeRef.new(shape: ComputeNodeGroupStatus, required: true, location_name: "status")) + ComputeNodeGroup.add_member(:ami_id, Shapes::ShapeRef.new(shape: AmiId, location_name: "amiId")) + ComputeNodeGroup.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, required: true, location_name: "subnetIds")) + ComputeNodeGroup.add_member(:purchase_option, Shapes::ShapeRef.new(shape: PurchaseOption, location_name: "purchaseOption")) + ComputeNodeGroup.add_member(:custom_launch_template, Shapes::ShapeRef.new(shape: CustomLaunchTemplate, required: true, location_name: "customLaunchTemplate")) + ComputeNodeGroup.add_member(:iam_instance_profile_arn, Shapes::ShapeRef.new(shape: InstanceProfileArn, required: true, location_name: "iamInstanceProfileArn")) + ComputeNodeGroup.add_member(:scaling_configuration, Shapes::ShapeRef.new(shape: ScalingConfiguration, required: true, location_name: "scalingConfiguration")) + ComputeNodeGroup.add_member(:instance_configs, Shapes::ShapeRef.new(shape: InstanceList, required: true, location_name: "instanceConfigs")) + ComputeNodeGroup.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotOptions, location_name: "spotOptions")) + ComputeNodeGroup.add_member(:slurm_configuration, Shapes::ShapeRef.new(shape: ComputeNodeGroupSlurmConfiguration, location_name: "slurmConfiguration")) + ComputeNodeGroup.add_member(:error_info, Shapes::ShapeRef.new(shape: ErrorInfoList, location_name: "errorInfo")) + ComputeNodeGroup.struct_class = Types::ComputeNodeGroup + + ComputeNodeGroupConfiguration.add_member(:compute_node_group_id, Shapes::ShapeRef.new(shape: String, location_name: "computeNodeGroupId")) + ComputeNodeGroupConfiguration.struct_class = Types::ComputeNodeGroupConfiguration + + ComputeNodeGroupConfigurationList.member = Shapes::ShapeRef.new(shape: ComputeNodeGroupConfiguration) + + ComputeNodeGroupList.member = Shapes::ShapeRef.new(shape: ComputeNodeGroupSummary) + + ComputeNodeGroupSlurmConfiguration.add_member(:slurm_custom_settings, Shapes::ShapeRef.new(shape: SlurmCustomSettings, location_name: "slurmCustomSettings")) + ComputeNodeGroupSlurmConfiguration.struct_class = Types::ComputeNodeGroupSlurmConfiguration + + ComputeNodeGroupSlurmConfigurationRequest.add_member(:slurm_custom_settings, Shapes::ShapeRef.new(shape: SlurmCustomSettings, location_name: "slurmCustomSettings")) + ComputeNodeGroupSlurmConfigurationRequest.struct_class = Types::ComputeNodeGroupSlurmConfigurationRequest + + ComputeNodeGroupSummary.add_member(:name, Shapes::ShapeRef.new(shape: ComputeNodeGroupName, required: true, location_name: "name")) + ComputeNodeGroupSummary.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + ComputeNodeGroupSummary.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + ComputeNodeGroupSummary.add_member(:cluster_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "clusterId")) + ComputeNodeGroupSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + ComputeNodeGroupSummary.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + ComputeNodeGroupSummary.add_member(:status, Shapes::ShapeRef.new(shape: ComputeNodeGroupStatus, required: true, location_name: "status")) + ComputeNodeGroupSummary.struct_class = Types::ComputeNodeGroupSummary + + ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ConflictException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId")) + ConflictException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType")) + ConflictException.struct_class = Types::ConflictException + + CreateClusterRequest.add_member(:cluster_name, Shapes::ShapeRef.new(shape: ClusterName, required: true, location_name: "clusterName")) + CreateClusterRequest.add_member(:scheduler, Shapes::ShapeRef.new(shape: SchedulerRequest, required: true, location_name: "scheduler")) + CreateClusterRequest.add_member(:size, Shapes::ShapeRef.new(shape: Size, required: true, location_name: "size")) + CreateClusterRequest.add_member(:networking, Shapes::ShapeRef.new(shape: NetworkingRequest, required: true, location_name: "networking")) + CreateClusterRequest.add_member(:slurm_configuration, Shapes::ShapeRef.new(shape: ClusterSlurmConfigurationRequest, location_name: "slurmConfiguration")) + CreateClusterRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + CreateClusterRequest.add_member(:tags, Shapes::ShapeRef.new(shape: RequestTagMap, location_name: "tags")) + CreateClusterRequest.struct_class = Types::CreateClusterRequest + + CreateClusterResponse.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "cluster")) + CreateClusterResponse.struct_class = Types::CreateClusterResponse + + CreateComputeNodeGroupRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + CreateComputeNodeGroupRequest.add_member(:compute_node_group_name, Shapes::ShapeRef.new(shape: ComputeNodeGroupName, required: true, location_name: "computeNodeGroupName")) + CreateComputeNodeGroupRequest.add_member(:ami_id, Shapes::ShapeRef.new(shape: AmiId, location_name: "amiId")) + CreateComputeNodeGroupRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "subnetIds")) + CreateComputeNodeGroupRequest.add_member(:purchase_option, Shapes::ShapeRef.new(shape: PurchaseOption, location_name: "purchaseOption")) + CreateComputeNodeGroupRequest.add_member(:custom_launch_template, Shapes::ShapeRef.new(shape: CustomLaunchTemplate, required: true, location_name: "customLaunchTemplate")) + CreateComputeNodeGroupRequest.add_member(:iam_instance_profile_arn, Shapes::ShapeRef.new(shape: InstanceProfileArn, required: true, location_name: "iamInstanceProfileArn")) + CreateComputeNodeGroupRequest.add_member(:scaling_configuration, Shapes::ShapeRef.new(shape: ScalingConfigurationRequest, required: true, location_name: "scalingConfiguration")) + CreateComputeNodeGroupRequest.add_member(:instance_configs, Shapes::ShapeRef.new(shape: InstanceList, required: true, location_name: "instanceConfigs")) + CreateComputeNodeGroupRequest.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotOptions, location_name: "spotOptions")) + CreateComputeNodeGroupRequest.add_member(:slurm_configuration, Shapes::ShapeRef.new(shape: ComputeNodeGroupSlurmConfigurationRequest, location_name: "slurmConfiguration")) + CreateComputeNodeGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + CreateComputeNodeGroupRequest.add_member(:tags, Shapes::ShapeRef.new(shape: RequestTagMap, location_name: "tags")) + CreateComputeNodeGroupRequest.struct_class = Types::CreateComputeNodeGroupRequest + + CreateComputeNodeGroupResponse.add_member(:compute_node_group, Shapes::ShapeRef.new(shape: ComputeNodeGroup, location_name: "computeNodeGroup")) + CreateComputeNodeGroupResponse.struct_class = Types::CreateComputeNodeGroupResponse + + CreateQueueRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + CreateQueueRequest.add_member(:queue_name, Shapes::ShapeRef.new(shape: QueueName, required: true, location_name: "queueName")) + CreateQueueRequest.add_member(:compute_node_group_configurations, Shapes::ShapeRef.new(shape: ComputeNodeGroupConfigurationList, location_name: "computeNodeGroupConfigurations")) + CreateQueueRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + CreateQueueRequest.add_member(:tags, Shapes::ShapeRef.new(shape: RequestTagMap, location_name: "tags")) + CreateQueueRequest.struct_class = Types::CreateQueueRequest + + CreateQueueResponse.add_member(:queue, Shapes::ShapeRef.new(shape: Queue, location_name: "queue")) + CreateQueueResponse.struct_class = Types::CreateQueueResponse + + CustomLaunchTemplate.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + CustomLaunchTemplate.add_member(:version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "version")) + CustomLaunchTemplate.struct_class = Types::CustomLaunchTemplate + + DeleteClusterRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + DeleteClusterRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + DeleteClusterRequest.struct_class = Types::DeleteClusterRequest + + DeleteClusterResponse.struct_class = Types::DeleteClusterResponse + + DeleteComputeNodeGroupRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + DeleteComputeNodeGroupRequest.add_member(:compute_node_group_identifier, Shapes::ShapeRef.new(shape: ComputeNodeGroupIdentifier, required: true, location_name: "computeNodeGroupIdentifier")) + DeleteComputeNodeGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + DeleteComputeNodeGroupRequest.struct_class = Types::DeleteComputeNodeGroupRequest + + DeleteComputeNodeGroupResponse.struct_class = Types::DeleteComputeNodeGroupResponse + + DeleteQueueRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + DeleteQueueRequest.add_member(:queue_identifier, Shapes::ShapeRef.new(shape: QueueIdentifier, required: true, location_name: "queueIdentifier")) + DeleteQueueRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + DeleteQueueRequest.struct_class = Types::DeleteQueueRequest + + DeleteQueueResponse.struct_class = Types::DeleteQueueResponse + + Endpoint.add_member(:type, Shapes::ShapeRef.new(shape: EndpointType, required: true, location_name: "type")) + Endpoint.add_member(:private_ip_address, Shapes::ShapeRef.new(shape: String, required: true, location_name: "privateIpAddress")) + Endpoint.add_member(:public_ip_address, Shapes::ShapeRef.new(shape: String, location_name: "publicIpAddress")) + Endpoint.add_member(:port, Shapes::ShapeRef.new(shape: String, required: true, location_name: "port")) + Endpoint.struct_class = Types::Endpoint + + Endpoints.member = Shapes::ShapeRef.new(shape: Endpoint) + + ErrorInfo.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "code")) + ErrorInfo.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message")) + ErrorInfo.struct_class = Types::ErrorInfo + + ErrorInfoList.member = Shapes::ShapeRef.new(shape: ErrorInfo) + + GetClusterRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + GetClusterRequest.struct_class = Types::GetClusterRequest + + GetClusterResponse.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "cluster")) + GetClusterResponse.struct_class = Types::GetClusterResponse + + GetComputeNodeGroupRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + GetComputeNodeGroupRequest.add_member(:compute_node_group_identifier, Shapes::ShapeRef.new(shape: ComputeNodeGroupIdentifier, required: true, location_name: "computeNodeGroupIdentifier")) + GetComputeNodeGroupRequest.struct_class = Types::GetComputeNodeGroupRequest + + GetComputeNodeGroupResponse.add_member(:compute_node_group, Shapes::ShapeRef.new(shape: ComputeNodeGroup, location_name: "computeNodeGroup")) + GetComputeNodeGroupResponse.struct_class = Types::GetComputeNodeGroupResponse + + GetQueueRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + GetQueueRequest.add_member(:queue_identifier, Shapes::ShapeRef.new(shape: QueueIdentifier, required: true, location_name: "queueIdentifier")) + GetQueueRequest.struct_class = Types::GetQueueRequest + + GetQueueResponse.add_member(:queue, Shapes::ShapeRef.new(shape: Queue, location_name: "queue")) + GetQueueResponse.struct_class = Types::GetQueueResponse + + InstanceConfig.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType")) + InstanceConfig.struct_class = Types::InstanceConfig + + InstanceList.member = Shapes::ShapeRef.new(shape: InstanceConfig) + + InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + InternalServerException.struct_class = Types::InternalServerException + + ListClustersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListClustersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults")) + ListClustersRequest.struct_class = Types::ListClustersRequest + + ListClustersResponse.add_member(:clusters, Shapes::ShapeRef.new(shape: ClusterList, required: true, location_name: "clusters")) + ListClustersResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListClustersResponse.struct_class = Types::ListClustersResponse + + ListComputeNodeGroupsRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + ListComputeNodeGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListComputeNodeGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults")) + ListComputeNodeGroupsRequest.struct_class = Types::ListComputeNodeGroupsRequest + + ListComputeNodeGroupsResponse.add_member(:compute_node_groups, Shapes::ShapeRef.new(shape: ComputeNodeGroupList, required: true, location_name: "computeNodeGroups")) + ListComputeNodeGroupsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListComputeNodeGroupsResponse.struct_class = Types::ListComputeNodeGroupsResponse + + ListQueuesRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + ListQueuesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListQueuesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults")) + ListQueuesRequest.struct_class = Types::ListQueuesRequest + + ListQueuesResponse.add_member(:queues, Shapes::ShapeRef.new(shape: QueueList, required: true, location_name: "queues")) + ListQueuesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken")) + ListQueuesResponse.struct_class = Types::ListQueuesResponse + + ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "resourceArn")) + ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest + + ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: ResponseTagMap, location_name: "tags")) + ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse + + Networking.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, location_name: "subnetIds")) + Networking.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdList, location_name: "securityGroupIds")) + Networking.struct_class = Types::Networking + + NetworkingRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, location_name: "subnetIds")) + NetworkingRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: SecurityGroupIdList, location_name: "securityGroupIds")) + NetworkingRequest.struct_class = Types::NetworkingRequest + + Queue.add_member(:name, Shapes::ShapeRef.new(shape: QueueName, required: true, location_name: "name")) + Queue.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + Queue.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + Queue.add_member(:cluster_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "clusterId")) + Queue.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + Queue.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + Queue.add_member(:status, Shapes::ShapeRef.new(shape: QueueStatus, required: true, location_name: "status")) + Queue.add_member(:compute_node_group_configurations, Shapes::ShapeRef.new(shape: ComputeNodeGroupConfigurationList, required: true, location_name: "computeNodeGroupConfigurations")) + Queue.add_member(:error_info, Shapes::ShapeRef.new(shape: ErrorInfoList, location_name: "errorInfo")) + Queue.struct_class = Types::Queue + + QueueList.member = Shapes::ShapeRef.new(shape: QueueSummary) + + QueueSummary.add_member(:name, Shapes::ShapeRef.new(shape: QueueName, required: true, location_name: "name")) + QueueSummary.add_member(:id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "id")) + QueueSummary.add_member(:arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "arn")) + QueueSummary.add_member(:cluster_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "clusterId")) + QueueSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createdAt")) + QueueSummary.add_member(:modified_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "modifiedAt")) + QueueSummary.add_member(:status, Shapes::ShapeRef.new(shape: QueueStatus, required: true, location_name: "status")) + QueueSummary.struct_class = Types::QueueSummary + + RegisterComputeNodeGroupInstanceRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + RegisterComputeNodeGroupInstanceRequest.add_member(:bootstrap_id, Shapes::ShapeRef.new(shape: BootstrapId, required: true, location_name: "bootstrapId")) + RegisterComputeNodeGroupInstanceRequest.struct_class = Types::RegisterComputeNodeGroupInstanceRequest + + RegisterComputeNodeGroupInstanceResponse.add_member(:node_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "nodeID")) + RegisterComputeNodeGroupInstanceResponse.add_member(:shared_secret, Shapes::ShapeRef.new(shape: SharedSecret, required: true, location_name: "sharedSecret")) + RegisterComputeNodeGroupInstanceResponse.add_member(:endpoints, Shapes::ShapeRef.new(shape: Endpoints, required: true, location_name: "endpoints")) + RegisterComputeNodeGroupInstanceResponse.struct_class = Types::RegisterComputeNodeGroupInstanceResponse + + RequestTagMap.key = Shapes::ShapeRef.new(shape: TagKey) + RequestTagMap.value = Shapes::ShapeRef.new(shape: TagValue) + + ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ResourceNotFoundException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId")) + ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType")) + ResourceNotFoundException.struct_class = Types::ResourceNotFoundException + + ResponseTagMap.key = Shapes::ShapeRef.new(shape: TagKey) + ResponseTagMap.value = Shapes::ShapeRef.new(shape: TagValue) + + ScalingConfiguration.add_member(:min_instance_count, Shapes::ShapeRef.new(shape: ScalingConfigurationMinInstanceCountInteger, required: true, location_name: "minInstanceCount")) + ScalingConfiguration.add_member(:max_instance_count, Shapes::ShapeRef.new(shape: ScalingConfigurationMaxInstanceCountInteger, required: true, location_name: "maxInstanceCount")) + ScalingConfiguration.struct_class = Types::ScalingConfiguration + + ScalingConfigurationRequest.add_member(:min_instance_count, Shapes::ShapeRef.new(shape: ScalingConfigurationRequestMinInstanceCountInteger, required: true, location_name: "minInstanceCount")) + ScalingConfigurationRequest.add_member(:max_instance_count, Shapes::ShapeRef.new(shape: ScalingConfigurationRequestMaxInstanceCountInteger, required: true, location_name: "maxInstanceCount")) + ScalingConfigurationRequest.struct_class = Types::ScalingConfigurationRequest + + Scheduler.add_member(:type, Shapes::ShapeRef.new(shape: SchedulerType, required: true, location_name: "type")) + Scheduler.add_member(:version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "version")) + Scheduler.struct_class = Types::Scheduler + + SchedulerRequest.add_member(:type, Shapes::ShapeRef.new(shape: SchedulerType, required: true, location_name: "type")) + SchedulerRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "version")) + SchedulerRequest.struct_class = Types::SchedulerRequest + + SecurityGroupIdList.member = Shapes::ShapeRef.new(shape: SecurityGroupId) + + ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ServiceQuotaExceededException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceCode")) + ServiceQuotaExceededException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId")) + ServiceQuotaExceededException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, location_name: "resourceType")) + ServiceQuotaExceededException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, location_name: "quotaCode")) + ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException + + SlurmAuthKey.add_member(:secret_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "secretArn")) + SlurmAuthKey.add_member(:secret_version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "secretVersion")) + SlurmAuthKey.struct_class = Types::SlurmAuthKey + + SlurmCustomSetting.add_member(:parameter_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "parameterName")) + SlurmCustomSetting.add_member(:parameter_value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "parameterValue")) + SlurmCustomSetting.struct_class = Types::SlurmCustomSetting + + SlurmCustomSettings.member = Shapes::ShapeRef.new(shape: SlurmCustomSetting) + + SpotOptions.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: SpotAllocationStrategy, location_name: "allocationStrategy")) + SpotOptions.struct_class = Types::SpotOptions + + StringList.member = Shapes::ShapeRef.new(shape: String) + + SubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId) + + TagKeys.member = Shapes::ShapeRef.new(shape: TagKey) + + TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "resourceArn")) + TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: RequestTagMap, required: true, location_name: "tags")) + TagResourceRequest.struct_class = Types::TagResourceRequest + + ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ThrottlingException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "retryAfterSeconds")) + ThrottlingException.struct_class = Types::ThrottlingException + + UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "resourceArn")) + UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeys, required: true, location_name: "tagKeys")) + UntagResourceRequest.struct_class = Types::UntagResourceRequest + + UpdateComputeNodeGroupRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + UpdateComputeNodeGroupRequest.add_member(:compute_node_group_identifier, Shapes::ShapeRef.new(shape: ComputeNodeGroupIdentifier, required: true, location_name: "computeNodeGroupIdentifier")) + UpdateComputeNodeGroupRequest.add_member(:ami_id, Shapes::ShapeRef.new(shape: AmiId, location_name: "amiId")) + UpdateComputeNodeGroupRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: StringList, location_name: "subnetIds")) + UpdateComputeNodeGroupRequest.add_member(:custom_launch_template, Shapes::ShapeRef.new(shape: CustomLaunchTemplate, location_name: "customLaunchTemplate")) + UpdateComputeNodeGroupRequest.add_member(:purchase_option, Shapes::ShapeRef.new(shape: PurchaseOption, location_name: "purchaseOption")) + UpdateComputeNodeGroupRequest.add_member(:spot_options, Shapes::ShapeRef.new(shape: SpotOptions, location_name: "spotOptions")) + UpdateComputeNodeGroupRequest.add_member(:scaling_configuration, Shapes::ShapeRef.new(shape: ScalingConfigurationRequest, location_name: "scalingConfiguration")) + UpdateComputeNodeGroupRequest.add_member(:iam_instance_profile_arn, Shapes::ShapeRef.new(shape: InstanceProfileArn, location_name: "iamInstanceProfileArn")) + UpdateComputeNodeGroupRequest.add_member(:slurm_configuration, Shapes::ShapeRef.new(shape: UpdateComputeNodeGroupSlurmConfigurationRequest, location_name: "slurmConfiguration")) + UpdateComputeNodeGroupRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + UpdateComputeNodeGroupRequest.struct_class = Types::UpdateComputeNodeGroupRequest + + UpdateComputeNodeGroupResponse.add_member(:compute_node_group, Shapes::ShapeRef.new(shape: ComputeNodeGroup, location_name: "computeNodeGroup")) + UpdateComputeNodeGroupResponse.struct_class = Types::UpdateComputeNodeGroupResponse + + UpdateComputeNodeGroupSlurmConfigurationRequest.add_member(:slurm_custom_settings, Shapes::ShapeRef.new(shape: SlurmCustomSettings, location_name: "slurmCustomSettings")) + UpdateComputeNodeGroupSlurmConfigurationRequest.struct_class = Types::UpdateComputeNodeGroupSlurmConfigurationRequest + + UpdateQueueRequest.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterIdentifier, required: true, location_name: "clusterIdentifier")) + UpdateQueueRequest.add_member(:queue_identifier, Shapes::ShapeRef.new(shape: QueueIdentifier, required: true, location_name: "queueIdentifier")) + UpdateQueueRequest.add_member(:compute_node_group_configurations, Shapes::ShapeRef.new(shape: ComputeNodeGroupConfigurationList, location_name: "computeNodeGroupConfigurations")) + UpdateQueueRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: SBClientToken, location_name: "clientToken", metadata: {"idempotencyToken"=>true})) + UpdateQueueRequest.struct_class = Types::UpdateQueueRequest + + UpdateQueueResponse.add_member(:queue, Shapes::ShapeRef.new(shape: Queue, location_name: "queue")) + UpdateQueueResponse.struct_class = Types::UpdateQueueResponse + + ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ValidationException.add_member(:reason, Shapes::ShapeRef.new(shape: ValidationExceptionReason, required: true, location_name: "reason")) + ValidationException.add_member(:field_list, Shapes::ShapeRef.new(shape: ValidationExceptionFieldList, location_name: "fieldList")) + ValidationException.struct_class = Types::ValidationException + + ValidationExceptionField.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name")) + ValidationExceptionField.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ValidationExceptionField.struct_class = Types::ValidationExceptionField + + ValidationExceptionFieldList.member = Shapes::ShapeRef.new(shape: ValidationExceptionField) + + + # @api private + API = Seahorse::Model::Api.new.tap do |api| + + api.version = "2023-02-10" + + api.metadata = { + "apiVersion" => "2023-02-10", + "auth" => ["aws.auth#sigv4"], + "endpointPrefix" => "pcs", + "jsonVersion" => "1.0", + "protocol" => "json", + "protocols" => ["json"], + "serviceFullName" => "AWS Parallel Computing Service", + "serviceId" => "PCS", + "signatureVersion" => "v4", + "signingName" => "pcs", + "targetPrefix" => "AWSParallelComputingService", + "uid" => "pcs-2023-02-10", + } + + api.add_operation(:create_cluster, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateCluster" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateClusterRequest) + o.output = Shapes::ShapeRef.new(shape: CreateClusterResponse) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:create_compute_node_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateComputeNodeGroup" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateComputeNodeGroupRequest) + o.output = Shapes::ShapeRef.new(shape: CreateComputeNodeGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:create_queue, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateQueue" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateQueueRequest) + o.output = Shapes::ShapeRef.new(shape: CreateQueueResponse) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteCluster" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteClusterRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteClusterResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:delete_compute_node_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteComputeNodeGroup" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteComputeNodeGroupRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteComputeNodeGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:delete_queue, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteQueue" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteQueueRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteQueueResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:get_cluster, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetCluster" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: GetClusterRequest) + o.output = Shapes::ShapeRef.new(shape: GetClusterResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:get_compute_node_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetComputeNodeGroup" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: GetComputeNodeGroupRequest) + o.output = Shapes::ShapeRef.new(shape: GetComputeNodeGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:get_queue, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetQueue" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: GetQueueRequest) + o.output = Shapes::ShapeRef.new(shape: GetQueueResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:list_clusters, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListClusters" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListClustersRequest) + o.output = Shapes::ShapeRef.new(shape: ListClustersResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_compute_node_groups, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListComputeNodeGroups" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListComputeNodeGroupsRequest) + o.output = Shapes::ShapeRef.new(shape: ListComputeNodeGroupsResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_queues, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListQueues" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListQueuesRequest) + o.output = Shapes::ShapeRef.new(shape: ListQueuesResponse) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListTagsForResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest) + o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + end) + + api.add_operation(:register_compute_node_group_instance, Seahorse::Model::Operation.new.tap do |o| + o.name = "RegisterComputeNodeGroupInstance" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: RegisterComputeNodeGroupInstanceRequest) + o.output = Shapes::ShapeRef.new(shape: RegisterComputeNodeGroupInstanceResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "TagResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: TagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure)) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + end) + + api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "UntagResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure)) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + end) + + api.add_operation(:update_compute_node_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdateComputeNodeGroup" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UpdateComputeNodeGroupRequest) + o.output = Shapes::ShapeRef.new(shape: UpdateComputeNodeGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + + api.add_operation(:update_queue, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdateQueue" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UpdateQueueRequest) + o.output = Shapes::ShapeRef.new(shape: UpdateQueueResponse) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + end + + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/customizations.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/customizations.rb new file mode 100644 index 00000000000..e69de29bb2d diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_parameters.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_parameters.rb new file mode 100644 index 00000000000..f32af701a8a --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_parameters.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + # Endpoint parameters used to influence endpoints per request. + # + # @!attribute region + # The AWS region used to dispatch the request. + # + # @return [String] + # + # @!attribute use_dual_stack + # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + # + # @return [Boolean] + # + # @!attribute use_fips + # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + # + # @return [Boolean] + # + # @!attribute endpoint + # Override the endpoint used to send this request + # + # @return [String] + # + EndpointParameters = Struct.new( + :region, + :use_dual_stack, + :use_fips, + :endpoint, + ) do + include Aws::Structure + + # @api private + class << self + PARAM_MAP = { + 'Region' => :region, + 'UseDualStack' => :use_dual_stack, + 'UseFIPS' => :use_fips, + 'Endpoint' => :endpoint, + }.freeze + end + + def initialize(options = {}) + self[:region] = options[:region] + self[:use_dual_stack] = options[:use_dual_stack] + self[:use_dual_stack] = false if self[:use_dual_stack].nil? + if self[:use_dual_stack].nil? + raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack" + end + self[:use_fips] = options[:use_fips] + self[:use_fips] = false if self[:use_fips].nil? + if self[:use_fips].nil? + raise ArgumentError, "Missing required EndpointParameter: :use_fips" + end + self[:endpoint] = options[:endpoint] + end + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_provider.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_provider.rb new file mode 100644 index 00000000000..342d935305f --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoint_provider.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + class EndpointProvider + def resolve_endpoint(parameters) + region = parameters.region + use_dual_stack = parameters.use_dual_stack + use_fips = parameters.use_fips + endpoint = parameters.endpoint + if Aws::Endpoints::Matchers.set?(endpoint) + if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) + raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported" + end + if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true) + raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported" + end + return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {}) + end + if Aws::Endpoints::Matchers.set?(region) + if (partition_result = Aws::Endpoints::Matchers.aws_partition(region)) + if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true) + if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack")) + return Aws::Endpoints::Endpoint.new(url: "https://pcs-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}) + end + raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both" + end + if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) + if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true) + return Aws::Endpoints::Endpoint.new(url: "https://pcs-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}) + end + raise ArgumentError, "FIPS is enabled but this partition does not support FIPS" + end + if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true) + if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack")) + return Aws::Endpoints::Endpoint.new(url: "https://pcs.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}) + end + raise ArgumentError, "DualStack is enabled but this partition does not support DualStack" + end + return Aws::Endpoints::Endpoint.new(url: "https://pcs.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}) + end + end + raise ArgumentError, "Invalid Configuration: Missing Region" + raise ArgumentError, 'No endpoint could be resolved' + + end + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoints.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoints.rb new file mode 100644 index 00000000000..9fcebe4ca89 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/endpoints.rb @@ -0,0 +1,268 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + + +module Aws::PCS + # @api private + module Endpoints + + class CreateCluster + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class CreateComputeNodeGroup + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class CreateQueue + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class DeleteCluster + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class DeleteComputeNodeGroup + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class DeleteQueue + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class GetCluster + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class GetComputeNodeGroup + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class GetQueue + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class ListClusters + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class ListComputeNodeGroups + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class ListQueues + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class ListTagsForResource + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class RegisterComputeNodeGroupInstance + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class TagResource + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class UntagResource + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class UpdateComputeNodeGroup + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + class UpdateQueue + def self.build(context) + unless context.config.regional_endpoint + endpoint = context.config.endpoint.to_s + end + Aws::PCS::EndpointParameters.new( + region: context.config.region, + use_dual_stack: context.config.use_dualstack_endpoint, + use_fips: context.config.use_fips_endpoint, + endpoint: endpoint, + ) + end + end + + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/errors.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/errors.rb new file mode 100644 index 00000000000..cf9afb9cab0 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/errors.rb @@ -0,0 +1,213 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + + # When PCS returns an error response, the Ruby SDK constructs and raises an error. + # These errors all extend Aws::PCS::Errors::ServiceError < {Aws::Errors::ServiceError} + # + # You can rescue all PCS errors using ServiceError: + # + # begin + # # do stuff + # rescue Aws::PCS::Errors::ServiceError + # # rescues all PCS API errors + # end + # + # + # ## Request Context + # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns + # information about the request that generated the error. + # See {Seahorse::Client::RequestContext} for more information. + # + # ## Error Classes + # * {AccessDeniedException} + # * {ConflictException} + # * {InternalServerException} + # * {ResourceNotFoundException} + # * {ServiceQuotaExceededException} + # * {ThrottlingException} + # * {ValidationException} + # + # Additionally, error classes are dynamically generated for service errors based on the error code + # if they are not defined above. + module Errors + + extend Aws::Errors::DynamicErrors + + class AccessDeniedException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::AccessDeniedException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + + class ConflictException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::ConflictException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + end + + class InternalServerException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::InternalServerException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + def retryable? + true + end + end + + class ResourceNotFoundException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::ResourceNotFoundException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + end + + class ServiceQuotaExceededException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::ServiceQuotaExceededException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def service_code + @data[:service_code] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + + # @return [String] + def quota_code + @data[:quota_code] + end + end + + class ThrottlingException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::ThrottlingException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def retry_after_seconds + @data[:retry_after_seconds] + end + + def retryable? + true + end + end + + class ValidationException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PCS::Types::ValidationException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def reason + @data[:reason] + end + + # @return [String] + def field_list + @data[:field_list] + end + end + + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/plugins/endpoints.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/plugins/endpoints.rb new file mode 100644 index 00000000000..661f11197e5 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/plugins/endpoints.rb @@ -0,0 +1,106 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + + +module Aws::PCS + module Plugins + class Endpoints < Seahorse::Client::Plugin + option( + :endpoint_provider, + doc_type: 'Aws::PCS::EndpointProvider', + rbs_type: 'untyped', + docstring: 'The endpoint provider used to resolve endpoints. Any '\ + 'object that responds to `#resolve_endpoint(parameters)` '\ + 'where `parameters` is a Struct similar to '\ + '`Aws::PCS::EndpointParameters`' + ) do |cfg| + Aws::PCS::EndpointProvider.new + end + + # @api private + class Handler < Seahorse::Client::Handler + def call(context) + unless context[:discovered_endpoint] + params = parameters_for_operation(context) + endpoint = context.config.endpoint_provider.resolve_endpoint(params) + + context.http_request.endpoint = endpoint.url + apply_endpoint_headers(context, endpoint.headers) + + context[:endpoint_params] = params + context[:endpoint_properties] = endpoint.properties + end + + context[:auth_scheme] = + Aws::Endpoints.resolve_auth_scheme(context, endpoint) + + @handler.call(context) + end + + private + + def apply_endpoint_headers(context, headers) + headers.each do |key, values| + value = values + .compact + .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) } + .join(',') + + context.http_request.headers[key] = value + end + end + + def parameters_for_operation(context) + case context.operation_name + when :create_cluster + Aws::PCS::Endpoints::CreateCluster.build(context) + when :create_compute_node_group + Aws::PCS::Endpoints::CreateComputeNodeGroup.build(context) + when :create_queue + Aws::PCS::Endpoints::CreateQueue.build(context) + when :delete_cluster + Aws::PCS::Endpoints::DeleteCluster.build(context) + when :delete_compute_node_group + Aws::PCS::Endpoints::DeleteComputeNodeGroup.build(context) + when :delete_queue + Aws::PCS::Endpoints::DeleteQueue.build(context) + when :get_cluster + Aws::PCS::Endpoints::GetCluster.build(context) + when :get_compute_node_group + Aws::PCS::Endpoints::GetComputeNodeGroup.build(context) + when :get_queue + Aws::PCS::Endpoints::GetQueue.build(context) + when :list_clusters + Aws::PCS::Endpoints::ListClusters.build(context) + when :list_compute_node_groups + Aws::PCS::Endpoints::ListComputeNodeGroups.build(context) + when :list_queues + Aws::PCS::Endpoints::ListQueues.build(context) + when :list_tags_for_resource + Aws::PCS::Endpoints::ListTagsForResource.build(context) + when :register_compute_node_group_instance + Aws::PCS::Endpoints::RegisterComputeNodeGroupInstance.build(context) + when :tag_resource + Aws::PCS::Endpoints::TagResource.build(context) + when :untag_resource + Aws::PCS::Endpoints::UntagResource.build(context) + when :update_compute_node_group + Aws::PCS::Endpoints::UpdateComputeNodeGroup.build(context) + when :update_queue + Aws::PCS::Endpoints::UpdateQueue.build(context) + end + end + end + + def add_handlers(handlers, _config) + handlers.add(Handler, step: :build, priority: 75) + end + end + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/resource.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/resource.rb new file mode 100644 index 00000000000..370525ae380 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/resource.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + + class Resource + + # @param options ({}) + # @option options [Client] :client + def initialize(options = {}) + @client = options[:client] || Client.new(options) + end + + # @return [Client] + def client + @client + end + + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/types.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/types.rb new file mode 100644 index 00000000000..5e173612cf3 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/types.rb @@ -0,0 +1,1916 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + module Types + + # You don't have permission to perform the action. + # + # Examples + # + # * The launch template instance profile doesn't pass `iam:PassRole` + # verification. + # + # * There is a mismatch between the account ID and cluster ID. + # + # * The cluster ID doesn't exist. + # + # * The EC2 instance isn't present. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/AccessDeniedException AWS API Documentation + # + class AccessDeniedException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + + # The cluster resource and configuration. + # + # @!attribute [rw] name + # The name that identifies the cluster. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the cluster. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the cluster. + # @return [String] + # + # @!attribute [rw] status + # The provisioning status of the cluster. + # + # The provisioning status doesn't indicate the overall health of the + # cluster. + # + # + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] scheduler + # The cluster management and job scheduling software associated with + # the cluster. + # @return [Types::Scheduler] + # + # @!attribute [rw] size + # The size of the cluster. + # + # * `SMALL`: 32 compute nodes and 256 jobs + # + # * `MEDIUM`: 512 compute nodes and 8192 jobs + # + # * `LARGE`: 2048 compute nodes and 16,384 jobs + # @return [String] + # + # @!attribute [rw] slurm_configuration + # Additional options related to the Slurm scheduler. + # @return [Types::ClusterSlurmConfiguration] + # + # @!attribute [rw] networking + # The networking configuration for the cluster's control plane. + # @return [Types::Networking] + # + # @!attribute [rw] endpoints + # The list of endpoints available for interaction with the scheduler. + # @return [Array] + # + # @!attribute [rw] error_info + # The list of errors that occurred during cluster provisioning. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/Cluster AWS API Documentation + # + class Cluster < Struct.new( + :name, + :id, + :arn, + :status, + :created_at, + :modified_at, + :scheduler, + :size, + :slurm_configuration, + :networking, + :endpoints, + :error_info) + SENSITIVE = [] + include Aws::Structure + end + + # Additional options related to the Slurm scheduler. + # + # @!attribute [rw] scale_down_idle_time_in_seconds + # The time before an idle node is scaled down. + # @return [Integer] + # + # @!attribute [rw] slurm_custom_settings + # Additional Slurm-specific configuration that directly maps to Slurm + # settings. + # @return [Array] + # + # @!attribute [rw] auth_key + # The shared Slurm key for authentication, also known as the **cluster + # secret**. + # @return [Types::SlurmAuthKey] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ClusterSlurmConfiguration AWS API Documentation + # + class ClusterSlurmConfiguration < Struct.new( + :scale_down_idle_time_in_seconds, + :slurm_custom_settings, + :auth_key) + SENSITIVE = [] + include Aws::Structure + end + + # Additional options related to the Slurm scheduler. + # + # @!attribute [rw] scale_down_idle_time_in_seconds + # The time before an idle node is scaled down. + # @return [Integer] + # + # @!attribute [rw] slurm_custom_settings + # Additional Slurm-specific configuration that directly maps to Slurm + # settings. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ClusterSlurmConfigurationRequest AWS API Documentation + # + class ClusterSlurmConfigurationRequest < Struct.new( + :scale_down_idle_time_in_seconds, + :slurm_custom_settings) + SENSITIVE = [] + include Aws::Structure + end + + # The object returned by the `ListClusters` API action. + # + # @!attribute [rw] name + # The name that identifies the cluster. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the cluster. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the cluster. + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] status + # The provisioning status of the cluster. + # + # The provisioning status doesn't indicate the overall health of the + # cluster. + # + # + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ClusterSummary AWS API Documentation + # + class ClusterSummary < Struct.new( + :name, + :id, + :arn, + :created_at, + :modified_at, + :status) + SENSITIVE = [] + include Aws::Structure + end + + # A compute node group associated with a cluster. + # + # @!attribute [rw] name + # The name that identifies the compute node group. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the compute node group. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the compute node group. + # @return [String] + # + # @!attribute [rw] cluster_id + # The ID of the cluster of the compute node group. + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] status + # The provisioning status of the compute node group. + # + # The provisioning status doesn't indicate the overall health of the + # compute node group. + # + # + # @return [String] + # + # @!attribute [rw] ami_id + # The ID of the Amazon Machine Image (AMI) that Amazon Web Services + # PCS uses to launch instances. If not provided, Amazon Web Services + # PCS uses the AMI ID specified in the custom launch template. + # @return [String] + # + # @!attribute [rw] subnet_ids + # The list of subnet IDs where instances are provisioned by the + # compute node group. The subnets must be in the same VPC as the + # cluster. + # @return [Array] + # + # @!attribute [rw] purchase_option + # Specifies how EC2 instances are purchased on your behalf. Amazon Web + # Services PCS supports On-Demand and Spot instances. For more + # information, see [Instance purchasing options][1] in the *Amazon + # Elastic Compute Cloud User Guide*. If you don't provide this + # option, it defaults to On-Demand. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html + # @return [String] + # + # @!attribute [rw] custom_launch_template + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # @return [Types::CustomLaunchTemplate] + # + # @!attribute [rw] iam_instance_profile_arn + # The Amazon Resource Name (ARN) of the IAM instance profile used to + # pass an IAM role when launching EC2 instances. The role contained in + # your instance profile must have + # `pcs:RegisterComputeNodeGroupInstance` permissions attached to + # provision instances correctly. + # @return [String] + # + # @!attribute [rw] scaling_configuration + # Specifies the boundaries of the compute node group auto scaling. + # @return [Types::ScalingConfiguration] + # + # @!attribute [rw] instance_configs + # A list of EC2 instance configurations that Amazon Web Services PCS + # can provision in the compute node group. + # @return [Array] + # + # @!attribute [rw] spot_options + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # @return [Types::SpotOptions] + # + # @!attribute [rw] slurm_configuration + # Additional options related to the Slurm scheduler. + # @return [Types::ComputeNodeGroupSlurmConfiguration] + # + # @!attribute [rw] error_info + # The list of errors that occurred during compute node group + # provisioning. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ComputeNodeGroup AWS API Documentation + # + class ComputeNodeGroup < Struct.new( + :name, + :id, + :arn, + :cluster_id, + :created_at, + :modified_at, + :status, + :ami_id, + :subnet_ids, + :purchase_option, + :custom_launch_template, + :iam_instance_profile_arn, + :scaling_configuration, + :instance_configs, + :spot_options, + :slurm_configuration, + :error_info) + SENSITIVE = [] + include Aws::Structure + end + + # The compute node group configuration for a queue. + # + # @!attribute [rw] compute_node_group_id + # The compute node group ID for the compute node group configuration. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ComputeNodeGroupConfiguration AWS API Documentation + # + class ComputeNodeGroupConfiguration < Struct.new( + :compute_node_group_id) + SENSITIVE = [] + include Aws::Structure + end + + # Additional options related to the Slurm scheduler. + # + # @!attribute [rw] slurm_custom_settings + # Additional Slurm-specific configuration that directly maps to Slurm + # settings. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ComputeNodeGroupSlurmConfiguration AWS API Documentation + # + class ComputeNodeGroupSlurmConfiguration < Struct.new( + :slurm_custom_settings) + SENSITIVE = [] + include Aws::Structure + end + + # Additional options related to the Slurm scheduler. + # + # @!attribute [rw] slurm_custom_settings + # Additional Slurm-specific configuration that directly maps to Slurm + # settings. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ComputeNodeGroupSlurmConfigurationRequest AWS API Documentation + # + class ComputeNodeGroupSlurmConfigurationRequest < Struct.new( + :slurm_custom_settings) + SENSITIVE = [] + include Aws::Structure + end + + # The object returned by the `ListComputeNodeGroups` API action. + # + # @!attribute [rw] name + # The name that identifies the compute node group. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the compute node group. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the compute node group. + # @return [String] + # + # @!attribute [rw] cluster_id + # The ID of the cluster of the compute node group. + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] status + # The provisioning status of the compute node group. + # + # The provisioning status doesn't indicate the overall health of the + # compute node group. + # + # + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ComputeNodeGroupSummary AWS API Documentation + # + class ComputeNodeGroupSummary < Struct.new( + :name, + :id, + :arn, + :cluster_id, + :created_at, + :modified_at, + :status) + SENSITIVE = [] + include Aws::Structure + end + + # Your request has conflicting operations. This can occur if you're + # trying to perform more than 1 operation on the same resource at the + # same time. + # + # Examples + # + # * A cluster with the same name already exists. + # + # * A cluster isn't in `ACTIVE` status. + # + # * A cluster to delete is in an unstable state. For example, because it + # still has `ACTIVE` node groups or queues. + # + # * A queue already exists in a cluster. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] resource_id + # The unique identifier of the resource that caused the conflict + # exception. + # @return [String] + # + # @!attribute [rw] resource_type + # The type or category of the resource that caused the conflict + # exception." + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ConflictException AWS API Documentation + # + class ConflictException < Struct.new( + :message, + :resource_id, + :resource_type) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_name + # A name to identify the cluster. Example: `MyCluster` + # @return [String] + # + # @!attribute [rw] scheduler + # The cluster management and job scheduling software associated with + # the cluster. + # @return [Types::SchedulerRequest] + # + # @!attribute [rw] size + # A value that determines the maximum number of compute nodes in the + # cluster and the maximum number of jobs (active and queued). + # + # * `SMALL`: 32 compute nodes and 256 jobs + # + # * `MEDIUM`: 512 compute nodes and 8192 jobs + # + # * `LARGE`: 2048 compute nodes and 16,384 jobs + # @return [String] + # + # @!attribute [rw] networking + # The networking configuration used to set up the cluster's control + # plane. + # @return [Types::NetworkingRequest] + # + # @!attribute [rw] slurm_configuration + # Additional options related to the Slurm scheduler. + # @return [Types::ClusterSlurmConfigurationRequest] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @!attribute [rw] tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateClusterRequest AWS API Documentation + # + class CreateClusterRequest < Struct.new( + :cluster_name, + :scheduler, + :size, + :networking, + :slurm_configuration, + :client_token, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster + # The cluster resource. + # @return [Types::Cluster] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateClusterResponse AWS API Documentation + # + class CreateClusterResponse < Struct.new( + :cluster) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster to create a compute node group in. + # @return [String] + # + # @!attribute [rw] compute_node_group_name + # A name to identify the cluster. Example: `MyCluster` + # @return [String] + # + # @!attribute [rw] ami_id + # The ID of the Amazon Machine Image (AMI) that Amazon Web Services + # PCS uses to launch compute nodes (Amazon EC2 instances). If you + # don't provide this value, Amazon Web Services PCS uses the AMI ID + # specified in the custom launch template. + # @return [String] + # + # @!attribute [rw] subnet_ids + # The list of subnet IDs where the compute node group launches + # instances. Subnets must be in the same VPC as the cluster. + # @return [Array] + # + # @!attribute [rw] purchase_option + # Specifies how EC2 instances are purchased on your behalf. Amazon Web + # Services PCS supports On-Demand and Spot instances. For more + # information, see [Instance purchasing options][1] in the *Amazon + # Elastic Compute Cloud User Guide*. If you don't provide this + # option, it defaults to On-Demand. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html + # @return [String] + # + # @!attribute [rw] custom_launch_template + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # @return [Types::CustomLaunchTemplate] + # + # @!attribute [rw] iam_instance_profile_arn + # The Amazon Resource Name (ARN) of the IAM instance profile used to + # pass an IAM role when launching EC2 instances. The role contained in + # your instance profile must have + # `pcs:RegisterComputeNodeGroupInstance` permissions attached in order + # to provision instances correctly. The resource identifier of the ARN + # must start with `AWSPCS`. For example, + # `arn:aws:iam:123456789012:instance-profile/AWSPCSMyComputeNodeInstanceProfile`. + # @return [String] + # + # @!attribute [rw] scaling_configuration + # Specifies the boundaries of the compute node group auto scaling. + # @return [Types::ScalingConfigurationRequest] + # + # @!attribute [rw] instance_configs + # A list of EC2 instance configurations that Amazon Web Services PCS + # can provision in the compute node group. + # @return [Array] + # + # @!attribute [rw] spot_options + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # @return [Types::SpotOptions] + # + # @!attribute [rw] slurm_configuration + # Additional options related to the Slurm scheduler. + # @return [Types::ComputeNodeGroupSlurmConfigurationRequest] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @!attribute [rw] tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateComputeNodeGroupRequest AWS API Documentation + # + class CreateComputeNodeGroupRequest < Struct.new( + :cluster_identifier, + :compute_node_group_name, + :ami_id, + :subnet_ids, + :purchase_option, + :custom_launch_template, + :iam_instance_profile_arn, + :scaling_configuration, + :instance_configs, + :spot_options, + :slurm_configuration, + :client_token, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] compute_node_group + # A compute node group associated with a cluster. + # @return [Types::ComputeNodeGroup] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateComputeNodeGroupResponse AWS API Documentation + # + class CreateComputeNodeGroupResponse < Struct.new( + :compute_node_group) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster for which to create a queue. + # @return [String] + # + # @!attribute [rw] queue_name + # A name to identify the queue. + # @return [String] + # + # @!attribute [rw] compute_node_group_configurations + # The list of compute node group configurations to associate with the + # queue. Queues assign jobs to associated compute node groups. + # @return [Array] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @!attribute [rw] tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateQueueRequest AWS API Documentation + # + class CreateQueueRequest < Struct.new( + :cluster_identifier, + :queue_name, + :compute_node_group_configurations, + :client_token, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] queue + # A queue resource. + # @return [Types::Queue] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CreateQueueResponse AWS API Documentation + # + class CreateQueueResponse < Struct.new( + :queue) + SENSITIVE = [] + include Aws::Structure + end + + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # + # @!attribute [rw] id + # The ID of the EC2 launch template to use to provision instances. + # + # Example: `lt-xxxx` + # @return [String] + # + # @!attribute [rw] version + # The version of the EC2 launch template to use to provision + # instances. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/CustomLaunchTemplate AWS API Documentation + # + class CustomLaunchTemplate < Struct.new( + :id, + :version) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster to delete. + # @return [String] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteClusterRequest AWS API Documentation + # + class DeleteClusterRequest < Struct.new( + :cluster_identifier, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteClusterResponse AWS API Documentation + # + class DeleteClusterResponse < Aws::EmptyStructure; end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the compute node group. + # @return [String] + # + # @!attribute [rw] compute_node_group_identifier + # The name or ID of the compute node group to delete. + # @return [String] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteComputeNodeGroupRequest AWS API Documentation + # + class DeleteComputeNodeGroupRequest < Struct.new( + :cluster_identifier, + :compute_node_group_identifier, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteComputeNodeGroupResponse AWS API Documentation + # + class DeleteComputeNodeGroupResponse < Aws::EmptyStructure; end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the queue. + # @return [String] + # + # @!attribute [rw] queue_identifier + # The name or ID of the queue to delete. + # @return [String] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteQueueRequest AWS API Documentation + # + class DeleteQueueRequest < Struct.new( + :cluster_identifier, + :queue_identifier, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/DeleteQueueResponse AWS API Documentation + # + class DeleteQueueResponse < Aws::EmptyStructure; end + + # An endpoint available for interaction with the scheduler. + # + # @!attribute [rw] type + # Indicates the type of endpoint running at the specific IP address. + # @return [String] + # + # @!attribute [rw] private_ip_address + # The endpoint's private IP address. + # + # Example: `2.2.2.2` + # @return [String] + # + # @!attribute [rw] public_ip_address + # The endpoint's public IP address. + # + # Example: `1.1.1.1` + # @return [String] + # + # @!attribute [rw] port + # The endpoint's connection port number. + # + # Example: `1234` + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/Endpoint AWS API Documentation + # + class Endpoint < Struct.new( + :type, + :private_ip_address, + :public_ip_address, + :port) + SENSITIVE = [] + include Aws::Structure + end + + # An error that occurred during resource creation. + # + # @!attribute [rw] code + # The short-form error code. + # @return [String] + # + # @!attribute [rw] message + # The detailed error information. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ErrorInfo AWS API Documentation + # + class ErrorInfo < Struct.new( + :code, + :message) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the queue. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetClusterRequest AWS API Documentation + # + class GetClusterRequest < Struct.new( + :cluster_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster + # The cluster resource. + # @return [Types::Cluster] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetClusterResponse AWS API Documentation + # + class GetClusterResponse < Struct.new( + :cluster) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster. + # @return [String] + # + # @!attribute [rw] compute_node_group_identifier + # The name or ID of the compute node group. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetComputeNodeGroupRequest AWS API Documentation + # + class GetComputeNodeGroupRequest < Struct.new( + :cluster_identifier, + :compute_node_group_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] compute_node_group + # A compute node group associated with a cluster. + # @return [Types::ComputeNodeGroup] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetComputeNodeGroupResponse AWS API Documentation + # + class GetComputeNodeGroupResponse < Struct.new( + :compute_node_group) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the queue. + # @return [String] + # + # @!attribute [rw] queue_identifier + # The name or ID of the queue. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetQueueRequest AWS API Documentation + # + class GetQueueRequest < Struct.new( + :cluster_identifier, + :queue_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] queue + # A queue resource. + # @return [Types::Queue] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/GetQueueResponse AWS API Documentation + # + class GetQueueResponse < Struct.new( + :queue) + SENSITIVE = [] + include Aws::Structure + end + + # An EC2 instance configuration Amazon Web Services PCS uses to launch + # compute nodes. + # + # @!attribute [rw] instance_type + # The EC2 instance type that Amazon Web Services PCS can provision in + # the compute node group. + # + # Example: `t2.xlarge` + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/InstanceConfig AWS API Documentation + # + class InstanceConfig < Struct.new( + :instance_type) + SENSITIVE = [] + include Aws::Structure + end + + # Amazon Web Services PCS can't process your request right now. Try + # again later. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/InternalServerException AWS API Documentation + # + class InternalServerException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results that are returned per call. You can + # use `nextToken` to obtain further pages of results. The default is + # 10 results, and the maximum allowed page size is 100 results. A + # value of 0 uses the default. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListClustersRequest AWS API Documentation + # + class ListClustersRequest < Struct.new( + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] clusters + # The list of clusters. + # @return [Array] + # + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListClustersResponse AWS API Documentation + # + class ListClustersResponse < Struct.new( + :clusters, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster to list compute node groups for. + # @return [String] + # + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results that are returned per call. You can + # use `nextToken` to obtain further pages of results. The default is + # 10 results, and the maximum allowed page size is 100 results. A + # value of 0 uses the default. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListComputeNodeGroupsRequest AWS API Documentation + # + class ListComputeNodeGroupsRequest < Struct.new( + :cluster_identifier, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] compute_node_groups + # The list of compute node groups for the cluster. + # @return [Array] + # + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListComputeNodeGroupsResponse AWS API Documentation + # + class ListComputeNodeGroupsResponse < Struct.new( + :compute_node_groups, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster to list queues for. + # @return [String] + # + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results that are returned per call. You can + # use `nextToken` to obtain further pages of results. The default is + # 10 results, and the maximum allowed page size is 100 results. A + # value of 0 uses the default. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListQueuesRequest AWS API Documentation + # + class ListQueuesRequest < Struct.new( + :cluster_identifier, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] queues + # The list of queues associated with the cluster. + # @return [Array] + # + # @!attribute [rw] next_token + # The value of `nextToken` is a unique pagination token for each page + # of results returned. If `nextToken` is returned, there are more + # results available. Make the call again using the returned token to + # retrieve the next page. Keep all other arguments unchanged. Each + # pagination token expires after 24 hours. Using an expired pagination + # token returns an `HTTP 400 InvalidToken` error. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListQueuesResponse AWS API Documentation + # + class ListQueuesResponse < Struct.new( + :queues, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource for which to list + # tags. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListTagsForResourceRequest AWS API Documentation + # + class ListTagsForResourceRequest < Struct.new( + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ListTagsForResourceResponse AWS API Documentation + # + class ListTagsForResourceResponse < Struct.new( + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # The networking configuration for the cluster's control plane. + # + # @!attribute [rw] subnet_ids + # The ID of the subnet where Amazon Web Services PCS creates an + # Elastic Network Interface (ENI) to enable communication between + # managed controllers and Amazon Web Services PCS resources. The + # subnet must have an available IP address, cannot reside in AWS + # Outposts, AWS Wavelength, or an AWS Local Zone. + # + # Example: `subnet-abcd1234` + # @return [Array] + # + # @!attribute [rw] security_group_ids + # The list of security group IDs associated with the Elastic Network + # Interface (ENI) created in subnets. + # + # The following rules are required: + # + # * Inbound rule 1 + # + # * Protocol: All + # + # * Ports: All + # + # * Source: Self + # + # * Outbound rule 1 + # + # * Protocol: All + # + # * Ports: All + # + # * Destination: 0.0.0.0/0 (IPv4) + # + # * Outbound rule 2 + # + # * Protocol: All + # + # * Ports: All + # + # * Destination: Self + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/Networking AWS API Documentation + # + class Networking < Struct.new( + :subnet_ids, + :security_group_ids) + SENSITIVE = [] + include Aws::Structure + end + + # The networking configuration for the cluster's control plane. + # + # @!attribute [rw] subnet_ids + # The list of subnet IDs where Amazon Web Services PCS creates an + # Elastic Network Interface (ENI) to enable communication between + # managed controllers and Amazon Web Services PCS resources. Subnet + # IDs have the form `subnet-0123456789abcdef0`. + # + # Subnets can't be in Outposts, Wavelength or an Amazon Web Services + # Local Zone. + # + # Amazon Web Services PCS currently supports only 1 subnet in this + # list. + # + # + # @return [Array] + # + # @!attribute [rw] security_group_ids + # A list of security group IDs associated with the Elastic Network + # Interface (ENI) created in subnets. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/NetworkingRequest AWS API Documentation + # + class NetworkingRequest < Struct.new( + :subnet_ids, + :security_group_ids) + SENSITIVE = [] + include Aws::Structure + end + + # A queue resource. + # + # @!attribute [rw] name + # The name that identifies the queue. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the queue. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the queue. + # @return [String] + # + # @!attribute [rw] cluster_id + # The ID of the cluster of the queue. + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] status + # The provisioning status of the queue. + # + # The provisioning status doesn't indicate the overall health of the + # queue. + # + # + # @return [String] + # + # @!attribute [rw] compute_node_group_configurations + # The list of compute node group configurations associated with the + # queue. Queues assign jobs to associated compute node groups. + # @return [Array] + # + # @!attribute [rw] error_info + # The list of errors that occurred during queue provisioning. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/Queue AWS API Documentation + # + class Queue < Struct.new( + :name, + :id, + :arn, + :cluster_id, + :created_at, + :modified_at, + :status, + :compute_node_group_configurations, + :error_info) + SENSITIVE = [] + include Aws::Structure + end + + # The object returned by the `ListQueues` API action. + # + # @!attribute [rw] name + # The name that identifies the queue. + # @return [String] + # + # @!attribute [rw] id + # The generated unique ID of the queue. + # @return [String] + # + # @!attribute [rw] arn + # The unique Amazon Resource Name (ARN) of the queue. + # @return [String] + # + # @!attribute [rw] cluster_id + # The ID of the cluster of the queue. + # @return [String] + # + # @!attribute [rw] created_at + # The date and time the resource was created. + # @return [Time] + # + # @!attribute [rw] modified_at + # The date and time the resource was modified. + # @return [Time] + # + # @!attribute [rw] status + # The provisioning status of the queue. + # + # The provisioning status doesn't indicate the overall health of the + # queue. + # + # + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/QueueSummary AWS API Documentation + # + class QueueSummary < Struct.new( + :name, + :id, + :arn, + :cluster_id, + :created_at, + :modified_at, + :status) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster to register the compute node group + # instance in. + # @return [String] + # + # @!attribute [rw] bootstrap_id + # The client-generated token to allow for retries. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/RegisterComputeNodeGroupInstanceRequest AWS API Documentation + # + class RegisterComputeNodeGroupInstanceRequest < Struct.new( + :cluster_identifier, + :bootstrap_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] node_id + # The scheduler node ID for this instance. + # @return [String] + # + # @!attribute [rw] shared_secret + # For the Slurm scheduler, this is the shared Munge key the scheduler + # uses to authenticate compute node group instances. + # @return [String] + # + # @!attribute [rw] endpoints + # The list of endpoints available for interaction with the scheduler. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/RegisterComputeNodeGroupInstanceResponse AWS API Documentation + # + class RegisterComputeNodeGroupInstanceResponse < Struct.new( + :node_id, + :shared_secret, + :endpoints) + SENSITIVE = [:shared_secret] + include Aws::Structure + end + + # The requested resource can't be found. The cluster, node group, or + # queue you're attempting to get, update, list, or delete doesn't + # exist. + # + # Examples + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] resource_id + # The unique identifier of the resource that was not found. + # @return [String] + # + # @!attribute [rw] resource_type + # The type or category of the resource that was not found. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ResourceNotFoundException AWS API Documentation + # + class ResourceNotFoundException < Struct.new( + :message, + :resource_id, + :resource_type) + SENSITIVE = [] + include Aws::Structure + end + + # Specifies the boundaries of the compute node group auto scaling. + # + # @!attribute [rw] min_instance_count + # The lower bound of the number of instances allowed in the compute + # fleet. + # @return [Integer] + # + # @!attribute [rw] max_instance_count + # The upper bound of the number of instances allowed in the compute + # fleet. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ScalingConfiguration AWS API Documentation + # + class ScalingConfiguration < Struct.new( + :min_instance_count, + :max_instance_count) + SENSITIVE = [] + include Aws::Structure + end + + # Specifies the boundaries of the compute node group auto scaling. + # + # @!attribute [rw] min_instance_count + # The lower bound of the number of instances allowed in the compute + # fleet. + # @return [Integer] + # + # @!attribute [rw] max_instance_count + # The upper bound of the number of instances allowed in the compute + # fleet. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ScalingConfigurationRequest AWS API Documentation + # + class ScalingConfigurationRequest < Struct.new( + :min_instance_count, + :max_instance_count) + SENSITIVE = [] + include Aws::Structure + end + + # The cluster management and job scheduling software associated with the + # cluster. + # + # @!attribute [rw] type + # The software Amazon Web Services PCS uses to manage cluster scaling + # and job scheduling. + # @return [String] + # + # @!attribute [rw] version + # The version of the specified scheduling software that Amazon Web + # Services PCS uses to manage cluster scaling and job scheduling. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/Scheduler AWS API Documentation + # + class Scheduler < Struct.new( + :type, + :version) + SENSITIVE = [] + include Aws::Structure + end + + # The cluster management and job scheduling software associated with the + # cluster. + # + # @!attribute [rw] type + # The software Amazon Web Services PCS uses to manage cluster scaling + # and job scheduling. + # @return [String] + # + # @!attribute [rw] version + # The version of the specified scheduling software that Amazon Web + # Services PCS uses to manage cluster scaling and job scheduling. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/SchedulerRequest AWS API Documentation + # + class SchedulerRequest < Struct.new( + :type, + :version) + SENSITIVE = [] + include Aws::Structure + end + + # You exceeded your service quota. Service quotas, also referred to as + # limits, are the maximum number of service resources or operations for + # your Amazon Web Services account. To learn how to increase your + # service quota, see [Requesting a quota increase][1] in the *Service + # Quotas User Guide* + # + # Examples + # + # * The max number of clusters or queues has been reached for the + # account. + # + # * The max number of compute node groups has been reached for the + # associated cluster. + # + # * The total of `maxInstances` across all compute node groups has been + # reached for associated cluster. + # + # + # + # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] service_code + # The service code associated with the quota that was exceeded. + # @return [String] + # + # @!attribute [rw] resource_id + # The unique identifier of the resource that caused the quota to be + # exceeded. + # @return [String] + # + # @!attribute [rw] resource_type + # The type or category of the resource that caused the quota to be + # exceeded. + # @return [String] + # + # @!attribute [rw] quota_code + # The **quota code** of the service quota that was exceeded. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ServiceQuotaExceededException AWS API Documentation + # + class ServiceQuotaExceededException < Struct.new( + :message, + :service_code, + :resource_id, + :resource_type, + :quota_code) + SENSITIVE = [] + include Aws::Structure + end + + # The shared Slurm key for authentication, also known as the **cluster + # secret**. + # + # @!attribute [rw] secret_arn + # The Amazon Resource Name (ARN) of the the shared Slurm key. + # @return [String] + # + # @!attribute [rw] secret_version + # The version of the shared Slurm key. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/SlurmAuthKey AWS API Documentation + # + class SlurmAuthKey < Struct.new( + :secret_arn, + :secret_version) + SENSITIVE = [] + include Aws::Structure + end + + # Additional settings that directly map to Slurm settings. + # + # @!attribute [rw] parameter_name + # Amazon Web Services PCS supports configuration of the following + # Slurm parameters: [ `Prolog` ][1], [ `Epilog` ][2], and [ + # `SelectTypeParameters` ][3]. + # + # + # + # [1]: https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1 + # [2]: https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1 + # [3]: https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters + # @return [String] + # + # @!attribute [rw] parameter_value + # The values for the configured Slurm settings. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/SlurmCustomSetting AWS API Documentation + # + class SlurmCustomSetting < Struct.new( + :parameter_name, + :parameter_value) + SENSITIVE = [] + include Aws::Structure + end + + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # + # @!attribute [rw] allocation_strategy + # The Amazon EC2 allocation strategy Amazon Web Services PCS uses to + # provision EC2 instances. Amazon Web Services PCS supports **lowest + # price**, **capacity optimized**, and **price capacity optimized**. + # For more information, see [Use allocation strategies to determine + # how EC2 Fleet or Spot Fleet fulfills Spot and On-Demand capacity][1] + # in the *Amazon Elastic Compute Cloud User Guide*. If you don't + # provide this option, it defaults to **price capacity optimized**. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/SpotOptions AWS API Documentation + # + class SpotOptions < Struct.new( + :allocation_strategy) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource. + # @return [String] + # + # @!attribute [rw] tags + # 1 or more tags added to the resource. Each tag consists of a tag key + # and tag value. The tag value is optional and can be an empty string. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/TagResourceRequest AWS API Documentation + # + class TagResourceRequest < Struct.new( + :resource_arn, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # Your request exceeded a request rate quota. Check the resource's + # request rate quota and try again. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] retry_after_seconds + # The number of seconds to wait before retrying the request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ThrottlingException AWS API Documentation + # + class ThrottlingException < Struct.new( + :message, + :retry_after_seconds) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource. + # @return [String] + # + # @!attribute [rw] tag_keys + # 1 or more tag keys to remove from the resource. Specify only tag + # keys and not tag values. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UntagResourceRequest AWS API Documentation + # + class UntagResourceRequest < Struct.new( + :resource_arn, + :tag_keys) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the compute node group. + # @return [String] + # + # @!attribute [rw] compute_node_group_identifier + # The name or ID of the compute node group. + # @return [String] + # + # @!attribute [rw] ami_id + # The ID of the Amazon Machine Image (AMI) that Amazon Web Services + # PCS uses to launch instances. If not provided, Amazon Web Services + # PCS uses the AMI ID specified in the custom launch template. + # @return [String] + # + # @!attribute [rw] subnet_ids + # The list of subnet IDs where the compute node group provisions + # instances. The subnets must be in the same VPC as the cluster. + # @return [Array] + # + # @!attribute [rw] custom_launch_template + # An Amazon EC2 launch template Amazon Web Services PCS uses to launch + # compute nodes. + # @return [Types::CustomLaunchTemplate] + # + # @!attribute [rw] purchase_option + # Specifies how EC2 instances are purchased on your behalf. Amazon Web + # Services PCS supports On-Demand and Spot instances. For more + # information, see [Instance purchasing options][1] in the *Amazon + # Elastic Compute Cloud User Guide*. If you don't provide this + # option, it defaults to On-Demand. + # + # + # + # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html + # @return [String] + # + # @!attribute [rw] spot_options + # Additional configuration when you specify `SPOT` as the + # `purchaseOption` for the `CreateComputeNodeGroup` API action. + # @return [Types::SpotOptions] + # + # @!attribute [rw] scaling_configuration + # Specifies the boundaries of the compute node group auto scaling. + # @return [Types::ScalingConfigurationRequest] + # + # @!attribute [rw] iam_instance_profile_arn + # The Amazon Resource Name (ARN) of the IAM instance profile used to + # pass an IAM role when launching EC2 instances. The role contained in + # your instance profile must have + # `pcs:RegisterComputeNodeGroupInstance` permissions attached to + # provision instances correctly. + # @return [String] + # + # @!attribute [rw] slurm_configuration + # Additional options related to the Slurm scheduler. + # @return [Types::UpdateComputeNodeGroupSlurmConfigurationRequest] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateComputeNodeGroupRequest AWS API Documentation + # + class UpdateComputeNodeGroupRequest < Struct.new( + :cluster_identifier, + :compute_node_group_identifier, + :ami_id, + :subnet_ids, + :custom_launch_template, + :purchase_option, + :spot_options, + :scaling_configuration, + :iam_instance_profile_arn, + :slurm_configuration, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] compute_node_group + # A compute node group associated with a cluster. + # @return [Types::ComputeNodeGroup] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateComputeNodeGroupResponse AWS API Documentation + # + class UpdateComputeNodeGroupResponse < Struct.new( + :compute_node_group) + SENSITIVE = [] + include Aws::Structure + end + + # Additional options related to the Slurm scheduler. + # + # @!attribute [rw] slurm_custom_settings + # Additional Slurm-specific configuration that directly maps to Slurm + # settings. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateComputeNodeGroupSlurmConfigurationRequest AWS API Documentation + # + class UpdateComputeNodeGroupSlurmConfigurationRequest < Struct.new( + :slurm_custom_settings) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] cluster_identifier + # The name or ID of the cluster of the queue. + # @return [String] + # + # @!attribute [rw] queue_identifier + # The name or ID of the queue. + # @return [String] + # + # @!attribute [rw] compute_node_group_configurations + # The list of compute node group configurations to associate with the + # queue. Queues assign jobs to associated compute node groups. + # @return [Array] + # + # @!attribute [rw] client_token + # A unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Idempotency ensures that an API request + # completes only once. With an idempotent request, if the original + # request completes successfully, the subsequent retries with the same + # client token return the result from the original successful request + # and they have no additional effect. If you don't specify a client + # token, the CLI and SDK automatically generate 1 for you. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateQueueRequest AWS API Documentation + # + class UpdateQueueRequest < Struct.new( + :cluster_identifier, + :queue_identifier, + :compute_node_group_configurations, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] queue + # A queue resource. + # @return [Types::Queue] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/UpdateQueueResponse AWS API Documentation + # + class UpdateQueueResponse < Struct.new( + :queue) + SENSITIVE = [] + include Aws::Structure + end + + # The request isn't valid. + # + # Examples + # + # * Your request contains malformed JSON or unsupported characters. + # + # * The scheduler version isn't supported. + # + # * There are networking related errors, such as network validation + # failure. + # + # * AMI type is `CUSTOM` and the launch template doesn't define the AMI + # ID, or the AMI type is AL2 and the launch template defines the AMI. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] reason + # The specific reason or cause of the validation error. + # @return [String] + # + # @!attribute [rw] field_list + # A list of fields or properties that failed validation. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ValidationException AWS API Documentation + # + class ValidationException < Struct.new( + :message, + :reason, + :field_list) + SENSITIVE = [] + include Aws::Structure + end + + # Stores information about a field in a request that caused an + # exception. + # + # @!attribute [rw] name + # The name of the exception. + # @return [String] + # + # @!attribute [rw] message + # The message body of the exception. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pcs-2023-02-10/ValidationExceptionField AWS API Documentation + # + class ValidationExceptionField < Struct.new( + :name, + :message) + SENSITIVE = [] + include Aws::Structure + end + + end +end diff --git a/gems/aws-sdk-pcs/lib/aws-sdk-pcs/waiters.rb b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/waiters.rb new file mode 100644 index 00000000000..c57a3bc08b0 --- /dev/null +++ b/gems/aws-sdk-pcs/lib/aws-sdk-pcs/waiters.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require 'aws-sdk-core/waiters' + +module Aws::PCS + module Waiters + end +end diff --git a/gems/aws-sdk-pcs/sig/client.rbs b/gems/aws-sdk-pcs/sig/client.rbs new file mode 100644 index 00000000000..8aeb150ce7d --- /dev/null +++ b/gems/aws-sdk-pcs/sig/client.rbs @@ -0,0 +1,359 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws + module PCS + class Client < ::Seahorse::Client::Base + include ::Aws::ClientStubs + + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#initialize-instance_method + def self.new: ( + ?credentials: untyped, + ?region: String, + ?access_key_id: String, + ?active_endpoint_cache: bool, + ?adaptive_retry_wait_to_fill: bool, + ?client_side_monitoring: bool, + ?client_side_monitoring_client_id: String, + ?client_side_monitoring_host: String, + ?client_side_monitoring_port: Integer, + ?client_side_monitoring_publisher: untyped, + ?convert_params: bool, + ?correct_clock_skew: bool, + ?defaults_mode: String, + ?disable_host_prefix_injection: bool, + ?disable_request_compression: bool, + ?endpoint: String, + ?endpoint_cache_max_entries: Integer, + ?endpoint_cache_max_threads: Integer, + ?endpoint_cache_poll_interval: Integer, + ?endpoint_discovery: bool, + ?ignore_configured_endpoint_urls: bool, + ?log_formatter: untyped, + ?log_level: Symbol, + ?logger: untyped, + ?max_attempts: Integer, + ?profile: String, + ?request_min_compression_size_bytes: Integer, + ?retry_backoff: Proc, + ?retry_base_delay: Float, + ?retry_jitter: (:none | :equal | :full | ^(Integer) -> Integer), + ?retry_limit: Integer, + ?retry_max_delay: Integer, + ?retry_mode: ("legacy" | "standard" | "adaptive"), + ?sdk_ua_app_id: String, + ?secret_access_key: String, + ?session_token: String, + ?sigv4a_signing_region_set: Array[String], + ?simple_json: bool, + ?stub_responses: untyped, + ?token_provider: untyped, + ?use_dualstack_endpoint: bool, + ?use_fips_endpoint: bool, + ?validate_params: bool, + ?endpoint_provider: untyped, + ?http_proxy: String, + ?http_open_timeout: (Float | Integer), + ?http_read_timeout: (Float | Integer), + ?http_idle_timeout: (Float | Integer), + ?http_continue_timeout: (Float | Integer), + ?ssl_timeout: (Float | Integer | nil), + ?http_wire_trace: bool, + ?ssl_verify_peer: bool, + ?ssl_ca_bundle: String, + ?ssl_ca_directory: String, + ?ssl_ca_store: String, + ?on_chunk_received: Proc, + ?on_chunk_sent: Proc, + ?raise_response_errors: bool + ) -> instance + | (?Hash[Symbol, untyped]) -> instance + + + interface _CreateClusterResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::CreateClusterResponse] + def cluster: () -> Types::Cluster + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#create_cluster-instance_method + def create_cluster: ( + cluster_name: ::String, + scheduler: { + type: ("SLURM"), + version: ::String + }, + size: ("SMALL" | "MEDIUM" | "LARGE"), + networking: { + subnet_ids: Array[::String]?, + security_group_ids: Array[::String]? + }, + ?slurm_configuration: { + scale_down_idle_time_in_seconds: ::Integer?, + slurm_custom_settings: Array[ + { + parameter_name: ::String, + parameter_value: ::String + }, + ]? + }, + ?client_token: ::String, + ?tags: Hash[::String, ::String] + ) -> _CreateClusterResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateClusterResponseSuccess + + interface _CreateComputeNodeGroupResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::CreateComputeNodeGroupResponse] + def compute_node_group: () -> Types::ComputeNodeGroup + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#create_compute_node_group-instance_method + def create_compute_node_group: ( + cluster_identifier: ::String, + compute_node_group_name: ::String, + ?ami_id: ::String, + subnet_ids: Array[::String], + ?purchase_option: ("ONDEMAND" | "SPOT"), + custom_launch_template: { + id: ::String, + version: ::String + }, + iam_instance_profile_arn: ::String, + scaling_configuration: { + min_instance_count: ::Integer, + max_instance_count: ::Integer + }, + instance_configs: Array[ + { + instance_type: ::String? + }, + ], + ?spot_options: { + allocation_strategy: ("lowest-price" | "capacity-optimized" | "price-capacity-optimized")? + }, + ?slurm_configuration: { + slurm_custom_settings: Array[ + { + parameter_name: ::String, + parameter_value: ::String + }, + ]? + }, + ?client_token: ::String, + ?tags: Hash[::String, ::String] + ) -> _CreateComputeNodeGroupResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateComputeNodeGroupResponseSuccess + + interface _CreateQueueResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::CreateQueueResponse] + def queue: () -> Types::Queue + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#create_queue-instance_method + def create_queue: ( + cluster_identifier: ::String, + queue_name: ::String, + ?compute_node_group_configurations: Array[ + { + compute_node_group_id: ::String? + }, + ], + ?client_token: ::String, + ?tags: Hash[::String, ::String] + ) -> _CreateQueueResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateQueueResponseSuccess + + interface _DeleteClusterResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::DeleteClusterResponse] + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#delete_cluster-instance_method + def delete_cluster: ( + cluster_identifier: ::String, + ?client_token: ::String + ) -> _DeleteClusterResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteClusterResponseSuccess + + interface _DeleteComputeNodeGroupResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::DeleteComputeNodeGroupResponse] + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#delete_compute_node_group-instance_method + def delete_compute_node_group: ( + cluster_identifier: ::String, + compute_node_group_identifier: ::String, + ?client_token: ::String + ) -> _DeleteComputeNodeGroupResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteComputeNodeGroupResponseSuccess + + interface _DeleteQueueResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::DeleteQueueResponse] + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#delete_queue-instance_method + def delete_queue: ( + cluster_identifier: ::String, + queue_identifier: ::String, + ?client_token: ::String + ) -> _DeleteQueueResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteQueueResponseSuccess + + interface _GetClusterResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::GetClusterResponse] + def cluster: () -> Types::Cluster + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#get_cluster-instance_method + def get_cluster: ( + cluster_identifier: ::String + ) -> _GetClusterResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetClusterResponseSuccess + + interface _GetComputeNodeGroupResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::GetComputeNodeGroupResponse] + def compute_node_group: () -> Types::ComputeNodeGroup + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#get_compute_node_group-instance_method + def get_compute_node_group: ( + cluster_identifier: ::String, + compute_node_group_identifier: ::String + ) -> _GetComputeNodeGroupResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetComputeNodeGroupResponseSuccess + + interface _GetQueueResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::GetQueueResponse] + def queue: () -> Types::Queue + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#get_queue-instance_method + def get_queue: ( + cluster_identifier: ::String, + queue_identifier: ::String + ) -> _GetQueueResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetQueueResponseSuccess + + interface _ListClustersResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::ListClustersResponse] + def clusters: () -> ::Array[Types::ClusterSummary] + def next_token: () -> ::String + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#list_clusters-instance_method + def list_clusters: ( + ?next_token: ::String, + ?max_results: ::Integer + ) -> _ListClustersResponseSuccess + | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListClustersResponseSuccess + + interface _ListComputeNodeGroupsResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::ListComputeNodeGroupsResponse] + def compute_node_groups: () -> ::Array[Types::ComputeNodeGroupSummary] + def next_token: () -> ::String + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#list_compute_node_groups-instance_method + def list_compute_node_groups: ( + cluster_identifier: ::String, + ?next_token: ::String, + ?max_results: ::Integer + ) -> _ListComputeNodeGroupsResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListComputeNodeGroupsResponseSuccess + + interface _ListQueuesResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::ListQueuesResponse] + def queues: () -> ::Array[Types::QueueSummary] + def next_token: () -> ::String + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#list_queues-instance_method + def list_queues: ( + cluster_identifier: ::String, + ?next_token: ::String, + ?max_results: ::Integer + ) -> _ListQueuesResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListQueuesResponseSuccess + + interface _ListTagsForResourceResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::ListTagsForResourceResponse] + def tags: () -> ::Hash[::String, ::String] + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#list_tags_for_resource-instance_method + def list_tags_for_resource: ( + resource_arn: ::String + ) -> _ListTagsForResourceResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListTagsForResourceResponseSuccess + + interface _RegisterComputeNodeGroupInstanceResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::RegisterComputeNodeGroupInstanceResponse] + def node_id: () -> ::String + def shared_secret: () -> ::String + def endpoints: () -> ::Array[Types::Endpoint] + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#register_compute_node_group_instance-instance_method + def register_compute_node_group_instance: ( + cluster_identifier: ::String, + bootstrap_id: ::String + ) -> _RegisterComputeNodeGroupInstanceResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _RegisterComputeNodeGroupInstanceResponseSuccess + + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#tag_resource-instance_method + def tag_resource: ( + resource_arn: ::String, + tags: Hash[::String, ::String] + ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#untag_resource-instance_method + def untag_resource: ( + resource_arn: ::String, + tag_keys: Array[::String] + ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure] + + interface _UpdateComputeNodeGroupResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::UpdateComputeNodeGroupResponse] + def compute_node_group: () -> Types::ComputeNodeGroup + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#update_compute_node_group-instance_method + def update_compute_node_group: ( + cluster_identifier: ::String, + compute_node_group_identifier: ::String, + ?ami_id: ::String, + ?subnet_ids: Array[::String], + ?custom_launch_template: { + id: ::String, + version: ::String + }, + ?purchase_option: ("ONDEMAND" | "SPOT"), + ?spot_options: { + allocation_strategy: ("lowest-price" | "capacity-optimized" | "price-capacity-optimized")? + }, + ?scaling_configuration: { + min_instance_count: ::Integer, + max_instance_count: ::Integer + }, + ?iam_instance_profile_arn: ::String, + ?slurm_configuration: { + slurm_custom_settings: Array[ + { + parameter_name: ::String, + parameter_value: ::String + }, + ]? + }, + ?client_token: ::String + ) -> _UpdateComputeNodeGroupResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateComputeNodeGroupResponseSuccess + + interface _UpdateQueueResponseSuccess + include ::Seahorse::Client::_ResponseSuccess[Types::UpdateQueueResponse] + def queue: () -> Types::Queue + end + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Client.html#update_queue-instance_method + def update_queue: ( + cluster_identifier: ::String, + queue_identifier: ::String, + ?compute_node_group_configurations: Array[ + { + compute_node_group_id: ::String? + }, + ], + ?client_token: ::String + ) -> _UpdateQueueResponseSuccess + | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateQueueResponseSuccess + end + end +end + diff --git a/gems/aws-sdk-pcs/sig/errors.rbs b/gems/aws-sdk-pcs/sig/errors.rbs new file mode 100644 index 00000000000..889c172bcb6 --- /dev/null +++ b/gems/aws-sdk-pcs/sig/errors.rbs @@ -0,0 +1,48 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws + module PCS + module Errors + class ServiceError < ::Aws::Errors::ServiceError + end + + class AccessDeniedException < ::Aws::Errors::ServiceError + def message: () -> ::String + end + class ConflictException < ::Aws::Errors::ServiceError + def message: () -> ::String + def resource_id: () -> ::String + def resource_type: () -> ::String + end + class InternalServerException < ::Aws::Errors::ServiceError + def message: () -> ::String + end + class ResourceNotFoundException < ::Aws::Errors::ServiceError + def message: () -> ::String + def resource_id: () -> ::String + def resource_type: () -> ::String + end + class ServiceQuotaExceededException < ::Aws::Errors::ServiceError + def message: () -> ::String + def service_code: () -> ::String + def resource_id: () -> ::String + def resource_type: () -> ::String + def quota_code: () -> ::String + end + class ThrottlingException < ::Aws::Errors::ServiceError + def message: () -> ::String + def retry_after_seconds: () -> ::String + end + class ValidationException < ::Aws::Errors::ServiceError + def message: () -> ::String + def reason: () -> ::String + def field_list: () -> ::String + end + end + end +end diff --git a/gems/aws-sdk-pcs/sig/resource.rbs b/gems/aws-sdk-pcs/sig/resource.rbs new file mode 100644 index 00000000000..758b260bfc8 --- /dev/null +++ b/gems/aws-sdk-pcs/sig/resource.rbs @@ -0,0 +1,81 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws + module PCS + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Resource.html + class Resource + # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PCS/Resource.html#initialize-instance_method + def initialize: ( + ?client: Client, + ?credentials: untyped, + ?region: String, + ?access_key_id: String, + ?active_endpoint_cache: bool, + ?adaptive_retry_wait_to_fill: bool, + ?client_side_monitoring: bool, + ?client_side_monitoring_client_id: String, + ?client_side_monitoring_host: String, + ?client_side_monitoring_port: Integer, + ?client_side_monitoring_publisher: untyped, + ?convert_params: bool, + ?correct_clock_skew: bool, + ?defaults_mode: String, + ?disable_host_prefix_injection: bool, + ?disable_request_compression: bool, + ?endpoint: String, + ?endpoint_cache_max_entries: Integer, + ?endpoint_cache_max_threads: Integer, + ?endpoint_cache_poll_interval: Integer, + ?endpoint_discovery: bool, + ?ignore_configured_endpoint_urls: bool, + ?log_formatter: untyped, + ?log_level: Symbol, + ?logger: untyped, + ?max_attempts: Integer, + ?profile: String, + ?request_min_compression_size_bytes: Integer, + ?retry_backoff: Proc, + ?retry_base_delay: Float, + ?retry_jitter: (:none | :equal | :full | ^(Integer) -> Integer), + ?retry_limit: Integer, + ?retry_max_delay: Integer, + ?retry_mode: ("legacy" | "standard" | "adaptive"), + ?sdk_ua_app_id: String, + ?secret_access_key: String, + ?session_token: String, + ?sigv4a_signing_region_set: Array[String], + ?simple_json: bool, + ?stub_responses: untyped, + ?token_provider: untyped, + ?use_dualstack_endpoint: bool, + ?use_fips_endpoint: bool, + ?validate_params: bool, + ?endpoint_provider: untyped, + ?http_proxy: String, + ?http_open_timeout: (Float | Integer), + ?http_read_timeout: (Float | Integer), + ?http_idle_timeout: (Float | Integer), + ?http_continue_timeout: (Float | Integer), + ?ssl_timeout: (Float | Integer | nil), + ?http_wire_trace: bool, + ?ssl_verify_peer: bool, + ?ssl_ca_bundle: String, + ?ssl_ca_directory: String, + ?ssl_ca_store: String, + ?on_chunk_received: Proc, + ?on_chunk_sent: Proc, + ?raise_response_errors: bool + ) -> void + | (?Hash[Symbol, untyped]) -> void + + def client: () -> Client + + + end + end +end diff --git a/gems/aws-sdk-pcs/sig/types.rbs b/gems/aws-sdk-pcs/sig/types.rbs new file mode 100644 index 00000000000..761cef5cac0 --- /dev/null +++ b/gems/aws-sdk-pcs/sig/types.rbs @@ -0,0 +1,475 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PCS + module Types + + class AccessDeniedException + attr_accessor message: ::String + SENSITIVE: [] + end + + class Cluster + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED") + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor scheduler: Types::Scheduler + attr_accessor size: ("SMALL" | "MEDIUM" | "LARGE") + attr_accessor slurm_configuration: Types::ClusterSlurmConfiguration + attr_accessor networking: Types::Networking + attr_accessor endpoints: ::Array[Types::Endpoint] + attr_accessor error_info: ::Array[Types::ErrorInfo] + SENSITIVE: [] + end + + class ClusterSlurmConfiguration + attr_accessor scale_down_idle_time_in_seconds: ::Integer + attr_accessor slurm_custom_settings: ::Array[Types::SlurmCustomSetting] + attr_accessor auth_key: Types::SlurmAuthKey + SENSITIVE: [] + end + + class ClusterSlurmConfigurationRequest + attr_accessor scale_down_idle_time_in_seconds: ::Integer + attr_accessor slurm_custom_settings: ::Array[Types::SlurmCustomSetting] + SENSITIVE: [] + end + + class ClusterSummary + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED") + SENSITIVE: [] + end + + class ComputeNodeGroup + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor cluster_id: ::String + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED" | "DELETED") + attr_accessor ami_id: ::String + attr_accessor subnet_ids: ::Array[::String] + attr_accessor purchase_option: ("ONDEMAND" | "SPOT") + attr_accessor custom_launch_template: Types::CustomLaunchTemplate + attr_accessor iam_instance_profile_arn: ::String + attr_accessor scaling_configuration: Types::ScalingConfiguration + attr_accessor instance_configs: ::Array[Types::InstanceConfig] + attr_accessor spot_options: Types::SpotOptions + attr_accessor slurm_configuration: Types::ComputeNodeGroupSlurmConfiguration + attr_accessor error_info: ::Array[Types::ErrorInfo] + SENSITIVE: [] + end + + class ComputeNodeGroupConfiguration + attr_accessor compute_node_group_id: ::String + SENSITIVE: [] + end + + class ComputeNodeGroupSlurmConfiguration + attr_accessor slurm_custom_settings: ::Array[Types::SlurmCustomSetting] + SENSITIVE: [] + end + + class ComputeNodeGroupSlurmConfigurationRequest + attr_accessor slurm_custom_settings: ::Array[Types::SlurmCustomSetting] + SENSITIVE: [] + end + + class ComputeNodeGroupSummary + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor cluster_id: ::String + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED" | "DELETED") + SENSITIVE: [] + end + + class ConflictException + attr_accessor message: ::String + attr_accessor resource_id: ::String + attr_accessor resource_type: ::String + SENSITIVE: [] + end + + class CreateClusterRequest + attr_accessor cluster_name: ::String + attr_accessor scheduler: Types::SchedulerRequest + attr_accessor size: ("SMALL" | "MEDIUM" | "LARGE") + attr_accessor networking: Types::NetworkingRequest + attr_accessor slurm_configuration: Types::ClusterSlurmConfigurationRequest + attr_accessor client_token: ::String + attr_accessor tags: ::Hash[::String, ::String] + SENSITIVE: [] + end + + class CreateClusterResponse + attr_accessor cluster: Types::Cluster + SENSITIVE: [] + end + + class CreateComputeNodeGroupRequest + attr_accessor cluster_identifier: ::String + attr_accessor compute_node_group_name: ::String + attr_accessor ami_id: ::String + attr_accessor subnet_ids: ::Array[::String] + attr_accessor purchase_option: ("ONDEMAND" | "SPOT") + attr_accessor custom_launch_template: Types::CustomLaunchTemplate + attr_accessor iam_instance_profile_arn: ::String + attr_accessor scaling_configuration: Types::ScalingConfigurationRequest + attr_accessor instance_configs: ::Array[Types::InstanceConfig] + attr_accessor spot_options: Types::SpotOptions + attr_accessor slurm_configuration: Types::ComputeNodeGroupSlurmConfigurationRequest + attr_accessor client_token: ::String + attr_accessor tags: ::Hash[::String, ::String] + SENSITIVE: [] + end + + class CreateComputeNodeGroupResponse + attr_accessor compute_node_group: Types::ComputeNodeGroup + SENSITIVE: [] + end + + class CreateQueueRequest + attr_accessor cluster_identifier: ::String + attr_accessor queue_name: ::String + attr_accessor compute_node_group_configurations: ::Array[Types::ComputeNodeGroupConfiguration] + attr_accessor client_token: ::String + attr_accessor tags: ::Hash[::String, ::String] + SENSITIVE: [] + end + + class CreateQueueResponse + attr_accessor queue: Types::Queue + SENSITIVE: [] + end + + class CustomLaunchTemplate + attr_accessor id: ::String + attr_accessor version: ::String + SENSITIVE: [] + end + + class DeleteClusterRequest + attr_accessor cluster_identifier: ::String + attr_accessor client_token: ::String + SENSITIVE: [] + end + + class DeleteClusterResponse < Aws::EmptyStructure + end + + class DeleteComputeNodeGroupRequest + attr_accessor cluster_identifier: ::String + attr_accessor compute_node_group_identifier: ::String + attr_accessor client_token: ::String + SENSITIVE: [] + end + + class DeleteComputeNodeGroupResponse < Aws::EmptyStructure + end + + class DeleteQueueRequest + attr_accessor cluster_identifier: ::String + attr_accessor queue_identifier: ::String + attr_accessor client_token: ::String + SENSITIVE: [] + end + + class DeleteQueueResponse < Aws::EmptyStructure + end + + class Endpoint + attr_accessor type: ("SLURMCTLD" | "SLURMDBD") + attr_accessor private_ip_address: ::String + attr_accessor public_ip_address: ::String + attr_accessor port: ::String + SENSITIVE: [] + end + + class ErrorInfo + attr_accessor code: ::String + attr_accessor message: ::String + SENSITIVE: [] + end + + class GetClusterRequest + attr_accessor cluster_identifier: ::String + SENSITIVE: [] + end + + class GetClusterResponse + attr_accessor cluster: Types::Cluster + SENSITIVE: [] + end + + class GetComputeNodeGroupRequest + attr_accessor cluster_identifier: ::String + attr_accessor compute_node_group_identifier: ::String + SENSITIVE: [] + end + + class GetComputeNodeGroupResponse + attr_accessor compute_node_group: Types::ComputeNodeGroup + SENSITIVE: [] + end + + class GetQueueRequest + attr_accessor cluster_identifier: ::String + attr_accessor queue_identifier: ::String + SENSITIVE: [] + end + + class GetQueueResponse + attr_accessor queue: Types::Queue + SENSITIVE: [] + end + + class InstanceConfig + attr_accessor instance_type: ::String + SENSITIVE: [] + end + + class InternalServerException + attr_accessor message: ::String + SENSITIVE: [] + end + + class ListClustersRequest + attr_accessor next_token: ::String + attr_accessor max_results: ::Integer + SENSITIVE: [] + end + + class ListClustersResponse + attr_accessor clusters: ::Array[Types::ClusterSummary] + attr_accessor next_token: ::String + SENSITIVE: [] + end + + class ListComputeNodeGroupsRequest + attr_accessor cluster_identifier: ::String + attr_accessor next_token: ::String + attr_accessor max_results: ::Integer + SENSITIVE: [] + end + + class ListComputeNodeGroupsResponse + attr_accessor compute_node_groups: ::Array[Types::ComputeNodeGroupSummary] + attr_accessor next_token: ::String + SENSITIVE: [] + end + + class ListQueuesRequest + attr_accessor cluster_identifier: ::String + attr_accessor next_token: ::String + attr_accessor max_results: ::Integer + SENSITIVE: [] + end + + class ListQueuesResponse + attr_accessor queues: ::Array[Types::QueueSummary] + attr_accessor next_token: ::String + SENSITIVE: [] + end + + class ListTagsForResourceRequest + attr_accessor resource_arn: ::String + SENSITIVE: [] + end + + class ListTagsForResourceResponse + attr_accessor tags: ::Hash[::String, ::String] + SENSITIVE: [] + end + + class Networking + attr_accessor subnet_ids: ::Array[::String] + attr_accessor security_group_ids: ::Array[::String] + SENSITIVE: [] + end + + class NetworkingRequest + attr_accessor subnet_ids: ::Array[::String] + attr_accessor security_group_ids: ::Array[::String] + SENSITIVE: [] + end + + class Queue + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor cluster_id: ::String + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED") + attr_accessor compute_node_group_configurations: ::Array[Types::ComputeNodeGroupConfiguration] + attr_accessor error_info: ::Array[Types::ErrorInfo] + SENSITIVE: [] + end + + class QueueSummary + attr_accessor name: ::String + attr_accessor id: ::String + attr_accessor arn: ::String + attr_accessor cluster_id: ::String + attr_accessor created_at: ::Time + attr_accessor modified_at: ::Time + attr_accessor status: ("CREATING" | "ACTIVE" | "UPDATING" | "DELETING" | "CREATE_FAILED" | "DELETE_FAILED" | "UPDATE_FAILED") + SENSITIVE: [] + end + + class RegisterComputeNodeGroupInstanceRequest + attr_accessor cluster_identifier: ::String + attr_accessor bootstrap_id: ::String + SENSITIVE: [] + end + + class RegisterComputeNodeGroupInstanceResponse + attr_accessor node_id: ::String + attr_accessor shared_secret: ::String + attr_accessor endpoints: ::Array[Types::Endpoint] + SENSITIVE: [:shared_secret] + end + + class ResourceNotFoundException + attr_accessor message: ::String + attr_accessor resource_id: ::String + attr_accessor resource_type: ::String + SENSITIVE: [] + end + + class ScalingConfiguration + attr_accessor min_instance_count: ::Integer + attr_accessor max_instance_count: ::Integer + SENSITIVE: [] + end + + class ScalingConfigurationRequest + attr_accessor min_instance_count: ::Integer + attr_accessor max_instance_count: ::Integer + SENSITIVE: [] + end + + class Scheduler + attr_accessor type: ("SLURM") + attr_accessor version: ::String + SENSITIVE: [] + end + + class SchedulerRequest + attr_accessor type: ("SLURM") + attr_accessor version: ::String + SENSITIVE: [] + end + + class ServiceQuotaExceededException + attr_accessor message: ::String + attr_accessor service_code: ::String + attr_accessor resource_id: ::String + attr_accessor resource_type: ::String + attr_accessor quota_code: ::String + SENSITIVE: [] + end + + class SlurmAuthKey + attr_accessor secret_arn: ::String + attr_accessor secret_version: ::String + SENSITIVE: [] + end + + class SlurmCustomSetting + attr_accessor parameter_name: ::String + attr_accessor parameter_value: ::String + SENSITIVE: [] + end + + class SpotOptions + attr_accessor allocation_strategy: ("lowest-price" | "capacity-optimized" | "price-capacity-optimized") + SENSITIVE: [] + end + + class TagResourceRequest + attr_accessor resource_arn: ::String + attr_accessor tags: ::Hash[::String, ::String] + SENSITIVE: [] + end + + class ThrottlingException + attr_accessor message: ::String + attr_accessor retry_after_seconds: ::Integer + SENSITIVE: [] + end + + class UntagResourceRequest + attr_accessor resource_arn: ::String + attr_accessor tag_keys: ::Array[::String] + SENSITIVE: [] + end + + class UpdateComputeNodeGroupRequest + attr_accessor cluster_identifier: ::String + attr_accessor compute_node_group_identifier: ::String + attr_accessor ami_id: ::String + attr_accessor subnet_ids: ::Array[::String] + attr_accessor custom_launch_template: Types::CustomLaunchTemplate + attr_accessor purchase_option: ("ONDEMAND" | "SPOT") + attr_accessor spot_options: Types::SpotOptions + attr_accessor scaling_configuration: Types::ScalingConfigurationRequest + attr_accessor iam_instance_profile_arn: ::String + attr_accessor slurm_configuration: Types::UpdateComputeNodeGroupSlurmConfigurationRequest + attr_accessor client_token: ::String + SENSITIVE: [] + end + + class UpdateComputeNodeGroupResponse + attr_accessor compute_node_group: Types::ComputeNodeGroup + SENSITIVE: [] + end + + class UpdateComputeNodeGroupSlurmConfigurationRequest + attr_accessor slurm_custom_settings: ::Array[Types::SlurmCustomSetting] + SENSITIVE: [] + end + + class UpdateQueueRequest + attr_accessor cluster_identifier: ::String + attr_accessor queue_identifier: ::String + attr_accessor compute_node_group_configurations: ::Array[Types::ComputeNodeGroupConfiguration] + attr_accessor client_token: ::String + SENSITIVE: [] + end + + class UpdateQueueResponse + attr_accessor queue: Types::Queue + SENSITIVE: [] + end + + class ValidationException + attr_accessor message: ::String + attr_accessor reason: ("unknownOperation" | "cannotParse" | "fieldValidationFailed" | "other") + attr_accessor field_list: ::Array[Types::ValidationExceptionField] + SENSITIVE: [] + end + + class ValidationExceptionField + attr_accessor name: ::String + attr_accessor message: ::String + SENSITIVE: [] + end + end +end diff --git a/gems/aws-sdk-pcs/sig/waiters.rbs b/gems/aws-sdk-pcs/sig/waiters.rbs new file mode 100644 index 00000000000..5c4a768affb --- /dev/null +++ b/gems/aws-sdk-pcs/sig/waiters.rbs @@ -0,0 +1,13 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws + module PCS + module Waiters + end + end +end diff --git a/gems/aws-sdk-pcs/spec/endpoint_provider_spec.rb b/gems/aws-sdk-pcs/spec/endpoint_provider_spec.rb new file mode 100644 index 00000000000..8e337624cfd --- /dev/null +++ b/gems/aws-sdk-pcs/spec/endpoint_provider_spec.rb @@ -0,0 +1,361 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + + +require_relative 'spec_helper' + +module Aws::PCS + describe EndpointProvider do + subject { Aws::PCS::EndpointProvider.new } + + context 'For region us-east-1 with FIPS enabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-east-1.api.aws"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-east-1 with FIPS enabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-east-1.amazonaws.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-east-1 with FIPS disabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-east-1.api.aws"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-east-1 with FIPS disabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-east-1.amazonaws.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region cn-north-1 with FIPS enabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.cn-north-1.api.amazonwebservices.com.cn"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region cn-north-1 with FIPS enabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.cn-north-1.amazonaws.com.cn"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region cn-north-1 with FIPS disabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.cn-north-1.api.amazonwebservices.com.cn"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region cn-north-1 with FIPS disabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.cn-north-1.amazonaws.com.cn"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-gov-east-1 with FIPS enabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-gov-east-1.api.aws"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-gov-east-1 with FIPS enabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-gov-east-1.amazonaws.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-gov-east-1 with FIPS disabled and DualStack enabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-gov-east-1.api.aws"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-gov-east-1 with FIPS disabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-gov-east-1.amazonaws.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-iso-east-1 with FIPS enabled and DualStack enabled' do + let(:expected) do + {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'For region us-iso-east-1 with FIPS enabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-iso-east-1.c2s.ic.gov"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-iso-east-1 with FIPS disabled and DualStack enabled' do + let(:expected) do + {"error"=>"DualStack is enabled but this partition does not support DualStack"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'For region us-iso-east-1 with FIPS disabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-iso-east-1.c2s.ic.gov"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do + let(:expected) do + {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs-fips.us-isob-east-1.sc2s.sgov.gov"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do + let(:expected) do + {"error"=>"DualStack is enabled but this partition does not support DualStack"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://pcs.us-isob-east-1.sc2s.sgov.gov"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For custom endpoint with region set and fips disabled and dualstack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://example.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For custom endpoint with region not set and fips disabled and dualstack disabled' do + let(:expected) do + {"endpoint"=>{"url"=>"https://example.com"}} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"}) + endpoint = subject.resolve_endpoint(params) + expect(endpoint.url).to eq(expected['endpoint']['url']) + expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {}) + expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {}) + end + end + + context 'For custom endpoint with fips enabled and dualstack disabled' do + let(:expected) do + {"error"=>"Invalid Configuration: FIPS and custom endpoint are not supported"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'For custom endpoint with fips disabled and dualstack enabled' do + let(:expected) do + {"error"=>"Invalid Configuration: Dualstack and custom endpoint are not supported"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + context 'Missing region' do + let(:expected) do + {"error"=>"Invalid Configuration: Missing Region"} + end + + it 'produces the expected output from the EndpointProvider' do + params = EndpointParameters.new(**{}) + expect do + subject.resolve_endpoint(params) + end.to raise_error(ArgumentError, expected['error']) + end + end + + end +end diff --git a/gems/aws-sdk-pcs/spec/spec_helper.rb b/gems/aws-sdk-pcs/spec/spec_helper.rb new file mode 100644 index 00000000000..347855c05fe --- /dev/null +++ b/gems/aws-sdk-pcs/spec/spec_helper.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require_relative '../../aws-sdk-core/spec/shared_spec_helper' + +$:.unshift(File.expand_path('../../lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__)) + +require 'rspec' +require 'webmock/rspec' +require 'aws-sdk-pcs' diff --git a/gems/aws-sdk-resources/CHANGELOG.md b/gems/aws-sdk-resources/CHANGELOG.md index 5f6f85fbee0..eb62aa1e10f 100644 --- a/gems/aws-sdk-resources/CHANGELOG.md +++ b/gems/aws-sdk-resources/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +3.203.0 (2024-08-28) +------------------ + +* Feature - Added a dependency on the new `aws-sdk-pcs` gem. + 3.202.0 (2024-08-27) ------------------ diff --git a/gems/aws-sdk-resources/VERSION b/gems/aws-sdk-resources/VERSION index e50271cb92c..e1d37b54bfe 100644 --- a/gems/aws-sdk-resources/VERSION +++ b/gems/aws-sdk-resources/VERSION @@ -1 +1 @@ -3.202.0 +3.203.0 diff --git a/gems/aws-sdk-resources/aws-sdk-resources.gemspec b/gems/aws-sdk-resources/aws-sdk-resources.gemspec index 35ec0f38aa0..522af8cdf47 100644 --- a/gems/aws-sdk-resources/aws-sdk-resources.gemspec +++ b/gems/aws-sdk-resources/aws-sdk-resources.gemspec @@ -283,6 +283,7 @@ Gem::Specification.new do |spec| spec.add_dependency('aws-sdk-opsworkscm', '~> 1') spec.add_dependency('aws-sdk-organizations', '~> 1') spec.add_dependency('aws-sdk-outposts', '~> 1') + spec.add_dependency('aws-sdk-pcs', '~> 1') spec.add_dependency('aws-sdk-pi', '~> 1') spec.add_dependency('aws-sdk-panorama', '~> 1') spec.add_dependency('aws-sdk-paymentcryptography', '~> 1') diff --git a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb index 453961745b0..a6477ba58ff 100644 --- a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb +++ b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb @@ -273,6 +273,7 @@ module Aws autoload :OpsWorksCM, 'aws-sdk-opsworkscm' autoload :Organizations, 'aws-sdk-organizations' autoload :Outposts, 'aws-sdk-outposts' + autoload :PCS, 'aws-sdk-pcs' autoload :PI, 'aws-sdk-pi' autoload :Panorama, 'aws-sdk-panorama' autoload :PaymentCryptography, 'aws-sdk-paymentcryptography' diff --git a/gems/aws-sdk-workspaces/CHANGELOG.md b/gems/aws-sdk-workspaces/CHANGELOG.md index d972abc25e6..efe74493f21 100644 --- a/gems/aws-sdk-workspaces/CHANGELOG.md +++ b/gems/aws-sdk-workspaces/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.114.0 (2024-08-28) +------------------ + +* Feature - Documentation-only update that clarifies the StartWorkspaces and StopWorkspaces actions, and a few other minor edits. + 1.113.0 (2024-08-26) ------------------ diff --git a/gems/aws-sdk-workspaces/VERSION b/gems/aws-sdk-workspaces/VERSION index 7bd0f252f61..14e09db94e7 100644 --- a/gems/aws-sdk-workspaces/VERSION +++ b/gems/aws-sdk-workspaces/VERSION @@ -1 +1 @@ -1.113.0 +1.114.0 diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb index 495db1c6542..ec53bb877ed 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb @@ -52,6 +52,6 @@ # @!group service module Aws::WorkSpaces - GEM_VERSION = '1.113.0' + GEM_VERSION = '1.114.0' end diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb index feb7dc0dd06..66919df6519 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb @@ -4221,7 +4221,7 @@ def revoke_ip_rules(params = {}, options = {}) # Starts the specified WorkSpaces. # # You cannot start a WorkSpace unless it has a running mode of - # `AutoStop` and a state of `STOPPED`. + # `AutoStop` or `Manual` and a state of `STOPPED`. # # @option params [required, Array] :start_workspace_requests # The WorkSpaces to start. You can specify up to 25 WorkSpaces. @@ -4284,7 +4284,8 @@ def start_workspaces_pool(params = {}, options = {}) # Stops the specified WorkSpaces. # # You cannot stop a WorkSpace unless it has a running mode of `AutoStop` - # and a state of `AVAILABLE`, `IMPAIRED`, `UNHEALTHY`, or `ERROR`. + # or `Manual` and a state of `AVAILABLE`, `IMPAIRED`, `UNHEALTHY`, or + # `ERROR`. # # @option params [required, Array] :stop_workspace_requests # The WorkSpaces to stop. You can specify up to 25 WorkSpaces. @@ -4777,7 +4778,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-workspaces' - context[:gem_version] = '1.113.0' + context[:gem_version] = '1.114.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb index 0e5bc898d46..e33c73b0f03 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb @@ -5931,6 +5931,12 @@ class WorkspaceProperties < Struct.new( # # @!attribute [rw] workspace_name # The name of the user-decoupled WorkSpace. + # + # `WorkspaceName` is required if `UserName` is `[UNDEFINED]` for + # user-decoupled WorkSpaces. `WorkspaceName` is not applicable if + # `UserName` is specified for user-assigned WorkSpaces. + # + # # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/WorkspaceRequest AWS API Documentation diff --git a/services.json b/services.json index 27ec3954203..0367df981bc 100644 --- a/services.json +++ b/services.json @@ -851,6 +851,9 @@ "Outposts": { "models": "outposts/2019-12-03" }, + "PCS": { + "models": "pcs/2023-02-10" + }, "PI": { "models": "pi/2018-02-27" },