diff --git a/.changes/1.35.8.json b/.changes/1.35.8.json new file mode 100644 index 0000000000..dc1fa3a8e2 --- /dev/null +++ b/.changes/1.35.8.json @@ -0,0 +1,37 @@ +[ + { + "category": "``appconfig``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``datazone``", + "description": "Update regex to include dot character to be consistent with IAM role creation in the authorized principal field for create and update subscription target.", + "type": "api-change" + }, + { + "category": "``devicefarm``", + "description": "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.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "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", + "type": "api-change" + }, + { + "category": "``internetmonitor``", + "description": "Adds new querying types to show overall traffic suggestion information for monitors", + "type": "api-change" + }, + { + "category": "``pcs``", + "description": "Introducing AWS Parallel Computing Service (AWS PCS), a new service makes it easy to setup and manage high performance computing (HPC) clusters, and build scientific and engineering models at virtually any scale on AWS.", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "Documentation-only update that clarifies the StartWorkspaces and StopWorkspaces actions, and a few other minor edits.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fc93c5b666..0643854488 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +1.35.8 +====== + +* api-change:``appconfig``: 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. +* api-change:``datazone``: Update regex to include dot character to be consistent with IAM role creation in the authorized principal field for create and update subscription target. +* api-change:``devicefarm``: 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. +* api-change:``ec2``: 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 +* api-change:``internetmonitor``: Adds new querying types to show overall traffic suggestion information for monitors +* api-change:``pcs``: Introducing AWS Parallel Computing Service (AWS PCS), a new service makes it easy to setup and manage high performance computing (HPC) clusters, and build scientific and engineering models at virtually any scale on AWS. +* api-change:``workspaces``: Documentation-only update that clarifies the StartWorkspaces and StopWorkspaces actions, and a few other minor edits. + + 1.35.7 ====== diff --git a/botocore/__init__.py b/botocore/__init__.py index 8fb2327698..1248eec5d6 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.35.7' +__version__ = '1.35.8' class NullHandler(logging.Handler): diff --git a/botocore/data/appconfig/2019-10-09/service-2.json b/botocore/data/appconfig/2019-10-09/service-2.json index 4106400ee1..3aab3ace38 100644 --- a/botocore/data/appconfig/2019-10-09/service-2.json +++ b/botocore/data/appconfig/2019-10-09/service-2.json @@ -5,12 +5,14 @@ "endpointPrefix":"appconfig", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"AppConfig", "serviceFullName":"Amazon AppConfig", "serviceId":"AppConfig", "signatureVersion":"v4", "signingName":"appconfig", - "uid":"appconfig-2019-10-09" + "uid":"appconfig-2019-10-09", + "auth":["aws.auth#sigv4"] }, "operations":{ "CreateApplication":{ @@ -130,7 +132,7 @@ {"shape":"PayloadTooLargeException"}, {"shape":"InternalServerException"} ], - "documentation":"
Creates a new configuration in the AppConfig hosted configuration store.
" + "documentation":"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":{ "name":"DeleteApplication", @@ -145,7 +147,7 @@ {"shape":"InternalServerException"}, {"shape":"BadRequestException"} ], - "documentation":"Deletes an application. Deleting an application does not delete a configuration from a host.
" + "documentation":"Deletes an application.
" }, "DeleteConfigurationProfile":{ "name":"DeleteConfigurationProfile", @@ -161,7 +163,7 @@ {"shape":"InternalServerException"}, {"shape":"BadRequestException"} ], - "documentation":"Deletes a configuration profile. Deleting a configuration profile does not delete a configuration from a host.
" + "documentation":"Deletes a configuration profile.
To prevent users from unintentionally deleting actively-used configuration profiles, enable deletion protection.
" }, "DeleteDeploymentStrategy":{ "name":"DeleteDeploymentStrategy", @@ -176,7 +178,7 @@ {"shape":"InternalServerException"}, {"shape":"BadRequestException"} ], - "documentation":"Deletes a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host.
" + "documentation":"Deletes a deployment strategy.
" }, "DeleteEnvironment":{ "name":"DeleteEnvironment", @@ -192,7 +194,7 @@ {"shape":"InternalServerException"}, {"shape":"BadRequestException"} ], - "documentation":"Deletes an environment. Deleting an environment does not delete a configuration from a host.
" + "documentation":"Deletes an environment.
To prevent users from unintentionally deleting actively-used environments, enable deletion protection.
" }, "DeleteExtension":{ "name":"DeleteExtension", @@ -239,6 +241,20 @@ ], "documentation":"Deletes a version of a configuration from the AppConfig hosted configuration store.
" }, + "GetAccountSettings":{ + "name":"GetAccountSettings", + "http":{ + "method":"GET", + "requestUri":"/settings", + "responseCode":200 + }, + "output":{"shape":"AccountSettings"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ], + "documentation":"Returns information about the status of the DeletionProtection
parameter.
(Deprecated) Retrieves the latest deployed configuration.
Note the following important information.
This API action is deprecated. Calls to receive configuration data should use the StartConfigurationSession and GetLatestConfiguration APIs instead.
GetConfiguration
is a priced call. For more information, see Pricing.
(Deprecated) Retrieves the latest deployed configuration.
Note the following important information.
This API action is deprecated. Calls to receive configuration data should use the StartConfigurationSession and GetLatestConfiguration APIs instead.
GetConfiguration is a priced call. For more information, see Pricing.
Deletes a tag key and value from an AppConfig resource.
" }, + "UpdateAccountSettings":{ + "name":"UpdateAccountSettings", + "http":{ + "method":"PATCH", + "requestUri":"/settings", + "responseCode":200 + }, + "input":{"shape":"UpdateAccountSettingsRequest"}, + "output":{"shape":"AccountSettings"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ], + "documentation":"Updates the value of the DeletionProtection
parameter.
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.
The content of the configuration or the configuration data.
" + "documentation":"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.
The ID of the configuration profile you want to delete.
", "location":"uri", "locationName":"ConfigurationProfileId" + }, + "DeletionProtectionCheck":{ + "shape":"DeletionProtectionCheck", + "documentation":"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:
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.
The ID of the environment that you want to delete.
", + "location":"uri", + "locationName":"EnvironmentId" + }, "ApplicationId":{ "shape":"Id", "documentation":"The application ID that includes the environment that you want to delete.
", "location":"uri", "locationName":"ApplicationId" }, - "EnvironmentId":{ - "shape":"Id", - "documentation":"The ID of the environment that you want to delete.
", - "location":"uri", - "locationName":"EnvironmentId" + "DeletionProtectionCheck":{ + "shape":"DeletionProtectionCheck", + "documentation":"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:
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.
A parameter that indicates if deletion protection is enabled or not.
", + "box":true + }, + "ProtectionPeriodInMinutes":{ + "shape":"DeletionProtectionDuration", + "documentation":"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 .
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:
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.
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.
", + "documentation":"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.
", "location":"querystring", "locationName":"client_configuration_version" } @@ -2818,6 +2900,15 @@ } } }, + "UpdateAccountSettingsRequest":{ + "type":"structure", + "members":{ + "DeletionProtection":{ + "shape":"DeletionProtectionSettings", + "documentation":"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.
The name of the configuration profile.
" }, "Description":{ @@ -3041,7 +3132,7 @@ "documentation":"Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.
" } }, - "documentation":"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.
" + "documentation":"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.
" }, "ValidatorList":{ "type":"list", diff --git a/botocore/data/datazone/2018-05-10/service-2.json b/botocore/data/datazone/2018-05-10/service-2.json index 16d713bf08..b4f91c15d2 100644 --- a/botocore/data/datazone/2018-05-10/service-2.json +++ b/botocore/data/datazone/2018-05-10/service-2.json @@ -651,7 +651,7 @@ {"shape":"ValidationException"}, {"shape":"UnauthorizedException"} ], - "documentation":"Deletes an data product in Amazon DataZone.
", + "documentation":"Deletes a data product in Amazon DataZone.
", "idempotent":true }, "DeleteDataSource":{ @@ -3298,7 +3298,7 @@ }, "AuthorizedPrincipalIdentifier":{ "type":"string", - "pattern":"^[a-zA-Z0-9:/_-]*$" + "pattern":"^[a-zA-Z0-9:/._-]*$" }, "AuthorizedPrincipalIdentifiers":{ "type":"list", diff --git a/botocore/data/devicefarm/2015-06-23/service-2.json b/botocore/data/devicefarm/2015-06-23/service-2.json index fda5cb6fda..7e7f829d6b 100644 --- a/botocore/data/devicefarm/2015-06-23/service-2.json +++ b/botocore/data/devicefarm/2015-06-23/service-2.json @@ -1290,7 +1290,7 @@ "type":"string", "max":1011, "min":32, - "pattern":"^arn:.+" + "pattern":"^arn:aws:devicefarm:.+" }, "AmazonResourceNames":{ "type":"list", @@ -1325,7 +1325,7 @@ }, "type":{ "shape":"ArtifactType", - "documentation":"The artifact's type.
Allowed values include the following:
UNKNOWN
SCREENSHOT
DEVICE_LOG
MESSAGE_LOG
VIDEO_LOG
RESULT_LOG
SERVICE_LOG
WEBKIT_LOG
INSTRUMENTATION_OUTPUT
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
APPIUM_JAVA_XML_OUTPUT
APPIUM_PYTHON_OUTPUT
APPIUM_PYTHON_XML_OUTPUT
EXPLORER_EVENT_LOG
EXPLORER_SUMMARY_LOG
APPLICATION_CRASH_REPORT
XCTEST_LOG
VIDEO
CUSTOMER_ARTIFACT
CUSTOMER_ARTIFACT_LOG
TESTSPEC_OUTPUT
The artifact's type.
Allowed values include the following:
UNKNOWN
SCREENSHOT
DEVICE_LOG
MESSAGE_LOG
VIDEO_LOG
RESULT_LOG
SERVICE_LOG
WEBKIT_LOG
INSTRUMENTATION_OUTPUT
EXERCISER_MONKEY_OUTPUT: the artifact (log) generated by an Android fuzz test.
APPIUM_SERVER_OUTPUT
APPIUM_JAVA_OUTPUT
APPIUM_JAVA_XML_OUTPUT
APPIUM_PYTHON_OUTPUT
APPIUM_PYTHON_XML_OUTPUT
APPLICATION_CRASH_REPORT
XCTEST_LOG
VIDEO
CUSTOMER_ARTIFACT
CUSTOMER_ARTIFACT_LOG
TESTSPEC_OUTPUT
The upload's upload type.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
CALABASH_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
UIAUTOMATION_TEST_PACKAGE
UIAUTOMATOR_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
If you call CreateUpload
with WEB_APP
specified, AWS Device Farm throws an ArgumentException
error.
The upload's upload type.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
If you call CreateUpload
with WEB_APP
specified, AWS Device Farm throws an ArgumentException
error.
The test type for the specified device pool.
Allowed values include the following:
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.
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.
The test type for the specified device pool.
Allowed values include the following:
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.
The job's type.
Allowed values include the following:
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
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
The job's type.
Allowed values include the following:
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
The type of upload.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
CALABASH_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
UIAUTOMATION_TEST_PACKAGE
UIAUTOMATOR_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
The type of upload.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
The run's type.
Must be one of the following values:
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
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
The run's type.
Must be one of the following values:
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
The test's type.
Must be one of the following values:
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
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
The test's type.
Must be one of the following values:
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
The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.
For all tests:
app_performance_monitoring
: Performance monitoring is enabled by default. Set this parameter to false to disable it.
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 are 1.6.5 (and later), latest, and default.
latest runs the latest Appium version supported by Device Farm (1.9.1).
For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
This behavior is subject to change.
For fuzz tests (Android only):
event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform.
throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events.
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:
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
For XCTest and XCTestUI:
filter: A test filter string. Examples:
Running a single test class: LoginTests
Running a multiple test classes: LoginTests,SmokeTests
Running a single test: LoginTests/testValid
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
The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.
For all tests:
app_performance_monitoring
: Performance monitoring is enabled by default. Set this parameter to false to disable it.
For Appium tests (all types):
appium_version: The Appium version. Currently supported values are 1.6.5 (and later), latest, and default.
latest runs the latest Appium version supported by Device Farm (1.9.1).
For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
This behavior is subject to change.
For fuzz tests (Android only):
event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform.
throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events.
seed: A seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.
For Instrumentation:
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
For XCTest and XCTestUI:
filter: A test filter string. Examples:
Running a single test class: LoginTests
Running a multiple test classes: LoginTests,SmokeTests
Running a single test: LoginTests/testValid
Running multiple tests: LoginTests/testValid,LoginTests/testInvalid
Represents test settings. This data structure is passed in as the test parameter to ScheduleRun. For an example of the JSON request syntax, see ScheduleRun.
" @@ -4824,7 +4824,7 @@ }, "type":{ "shape":"TestType", - "documentation":"The suite's type.
Must be one of the following values:
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
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
The suite's type.
Must be one of the following values:
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
The test's type.
Must be one of the following values:
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
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
The test's type.
Must be one of the following values:
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
The upload's type.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
CALABASH_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
UIAUTOMATION_TEST_PACKAGE
UIAUTOMATOR_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
The upload's type.
Must be one of the following values:
ANDROID_APP
IOS_APP
WEB_APP
EXTERNAL_DATA
APPIUM_JAVA_JUNIT_TEST_PACKAGE
APPIUM_JAVA_TESTNG_TEST_PACKAGE
APPIUM_PYTHON_TEST_PACKAGE
APPIUM_NODE_TEST_PACKAGE
APPIUM_RUBY_TEST_PACKAGE
APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
APPIUM_WEB_PYTHON_TEST_PACKAGE
APPIUM_WEB_NODE_TEST_PACKAGE
APPIUM_WEB_RUBY_TEST_PACKAGE
INSTRUMENTATION_TEST_PACKAGE
XCTEST_TEST_PACKAGE
XCTEST_UI_TEST_PACKAGE
APPIUM_JAVA_JUNIT_TEST_SPEC
APPIUM_JAVA_TESTNG_TEST_SPEC
APPIUM_PYTHON_TEST_SPEC
APPIUM_NODE_TEST_SPEC
APPIUM_RUBY_TEST_SPEC
APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
APPIUM_WEB_PYTHON_TEST_SPEC
APPIUM_WEB_NODE_TEST_SPEC
APPIUM_WEB_RUBY_TEST_SPEC
INSTRUMENTATION_TEST_SPEC
XCTEST_UI_TEST_SPEC
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:
Launch an instance from an existing AMI with that billing product code.
Customize the instance.
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.
" + "documentation":"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":{ "name":"RegisterInstanceEventNotificationAttributes", @@ -7106,6 +7106,10 @@ "shape":"TagSpecificationList", "documentation":"The tags to assign to the Elastic IP address.
", "locationName":"TagSpecification" + }, + "IpamPoolId":{ + "shape":"IpamPoolId", + "documentation":"The ID of an IPAM pool.
" } } }, @@ -38726,7 +38730,8 @@ "vpc", "ec2-public-ipv4-pool", "custom", - "subnet" + "subnet", + "eip" ] }, "IpamPoolAllocationSet":{ @@ -38983,6 +38988,7 @@ "service-managed-ip", "service-managed-byoip", "amazon-owned-eip", + "amazon-owned-contig", "byoip", "ec2-public-ip" ] diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 40440aed29..1f468912de 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.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/botocore/data/internetmonitor/2021-06-03/service-2.json b/botocore/data/internetmonitor/2021-06-03/service-2.json index 17747a0a24..1730acc410 100644 --- a/botocore/data/internetmonitor/2021-06-03/service-2.json +++ b/botocore/data/internetmonitor/2021-06-03/service-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", @@ -1567,7 +1568,9 @@ "enum":[ "MEASUREMENTS", "TOP_LOCATIONS", - "TOP_LOCATION_DETAILS" + "TOP_LOCATION_DETAILS", + "OVERALL_TRAFFIC_SUGGESTIONS", + "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" ] }, "ResourceName":{ @@ -1657,7 +1660,7 @@ }, "QueryType":{ "shape":"QueryType", - "documentation":"The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:
MEASUREMENTS
: Provides availability score, performance score, total traffic, and round-trip times, at 5 minute intervals.
TOP_LOCATIONS
: Provides availability score, performance score, total traffic, and time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume.
TOP_LOCATION_DETAILS
: Provides TTFB for Amazon CloudFront, your current configuration, and the best performing EC2 configuration, at 1 hour intervals.
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.
" + "documentation":"The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:
MEASUREMENTS
: Provides availability score, performance score, total traffic, and round-trip times, at 5 minute intervals.
TOP_LOCATIONS
: Provides availability score, performance score, total traffic, and time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume.
TOP_LOCATION_DETAILS
: Provides TTFB for Amazon CloudFront, your 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 in the Amazon CloudWatch Internet Monitor User Guide.
" }, "FilterParameters":{ "shape":"FilterParameters", diff --git a/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json b/botocore/data/pcs/2023-02-10/endpoint-rule-set-1.json new file mode 100644 index 0000000000..4da2239d23 --- /dev/null +++ b/botocore/data/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/botocore/data/pcs/2023-02-10/paginators-1.json b/botocore/data/pcs/2023-02-10/paginators-1.json new file mode 100644 index 0000000000..555a266b31 --- /dev/null +++ b/botocore/data/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/botocore/data/pcs/2023-02-10/service-2.json b/botocore/data/pcs/2023-02-10/service-2.json new file mode 100644 index 0000000000..0ecd55ea9a --- /dev/null +++ b/botocore/data/pcs/2023-02-10/service-2.json @@ -0,0 +1,1908 @@ +{ + "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"} + ], + "documentation":"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.
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.
", + "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"} + ], + "documentation":"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.
", + "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"} + ], + "documentation":"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.
", + "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"} + ], + "documentation":"Deletes a compute node group. You must delete all queues associated with the compute node group first.
", + "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"} + ], + "documentation":"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.
", + "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"} + ], + "documentation":"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":{ + "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"} + ], + "documentation":"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":{ + "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"} + ], + "documentation":"Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.
" + }, + "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"} + ], + "documentation":"Returns a list of running clusters in your account.
" + }, + "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"} + ], + "documentation":"Returns a list of all compute node groups associated with a cluster.
" + }, + "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"} + ], + "documentation":"Returns a list of all queues associated with a cluster.
" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Returns a list of all tags on an Amazon Web Services PCS resource.
" + }, + "RegisterComputeNodeGroupInstance":{ + "name":"RegisterComputeNodeGroupInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterComputeNodeGroupInstanceRequest"}, + "output":{"shape":"RegisterComputeNodeGroupInstanceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"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":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"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.
", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"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.
", + "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"} + ], + "documentation":"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).
", + "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"} + ], + "documentation":"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.
", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"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.
The name that identifies the cluster.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the cluster.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the cluster.
" + }, + "status":{ + "shape":"ClusterStatus", + "documentation":"The provisioning status of the cluster.
The provisioning status doesn't indicate the overall health of the cluster.
The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "scheduler":{"shape":"Scheduler"}, + "size":{ + "shape":"Size", + "documentation":"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
Additional options related to the Slurm scheduler.
" + }, + "networking":{"shape":"Networking"}, + "endpoints":{ + "shape":"Endpoints", + "documentation":"The list of endpoints available for interaction with the scheduler.
" + }, + "errorInfo":{ + "shape":"ErrorInfoList", + "documentation":"The list of errors that occurred during cluster provisioning.
" + } + }, + "documentation":"The cluster resource and configuration.
" + }, + "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", + "documentation":"The time before an idle node is scaled down.
" + }, + "slurmCustomSettings":{ + "shape":"SlurmCustomSettings", + "documentation":"Additional Slurm-specific configuration that directly maps to Slurm settings.
" + }, + "authKey":{ + "shape":"SlurmAuthKey", + "documentation":"The shared Slurm key for authentication, also known as the cluster secret.
" + } + }, + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "ClusterSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "scaleDownIdleTimeInSeconds":{ + "shape":"ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger", + "documentation":"The time before an idle node is scaled down.
" + }, + "slurmCustomSettings":{ + "shape":"SlurmCustomSettings", + "documentation":"Additional Slurm-specific configuration that directly maps to Slurm settings.
" + } + }, + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "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", + "documentation":"The name that identifies the cluster.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the cluster.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the cluster.
" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "status":{ + "shape":"ClusterStatus", + "documentation":"The provisioning status of the cluster.
The provisioning status doesn't indicate the overall health of the cluster.
The object returned by the ListClusters
API action.
The name that identifies the compute node group.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the compute node group.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the compute node group.
" + }, + "clusterId":{ + "shape":"String", + "documentation":"The ID of the cluster of the compute node group.
" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "status":{ + "shape":"ComputeNodeGroupStatus", + "documentation":"The provisioning status of the compute node group.
The provisioning status doesn't indicate the overall health of the compute node group.
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.
" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"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.
" + }, + "purchaseOption":{ + "shape":"PurchaseOption", + "documentation":"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.
" + }, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "iamInstanceProfileArn":{ + "shape":"InstanceProfileArn", + "documentation":"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.
A list of EC2 instance configurations that Amazon Web Services PCS can provision in the compute node group.
" + }, + "spotOptions":{"shape":"SpotOptions"}, + "slurmConfiguration":{"shape":"ComputeNodeGroupSlurmConfiguration"}, + "errorInfo":{ + "shape":"ErrorInfoList", + "documentation":"The list of errors that occurred during compute node group provisioning.
" + } + }, + "documentation":"A compute node group associated with a cluster.
" + }, + "ComputeNodeGroupConfiguration":{ + "type":"structure", + "members":{ + "computeNodeGroupId":{ + "shape":"String", + "documentation":"The compute node group ID for the compute node group configuration.
" + } + }, + "documentation":"The compute node group configuration for a queue.
" + }, + "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", + "documentation":"Additional Slurm-specific configuration that directly maps to Slurm settings.
" + } + }, + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "ComputeNodeGroupSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "slurmCustomSettings":{ + "shape":"SlurmCustomSettings", + "documentation":"Additional Slurm-specific configuration that directly maps to Slurm settings.
" + } + }, + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "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", + "documentation":"The name that identifies the compute node group.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the compute node group.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the compute node group.
" + }, + "clusterId":{ + "shape":"String", + "documentation":"The ID of the cluster of the compute node group.
" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "status":{ + "shape":"ComputeNodeGroupStatus", + "documentation":"The provisioning status of the compute node group.
The provisioning status doesn't indicate the overall health of the compute node group.
The object returned by the ListComputeNodeGroups
API action.
The unique identifier of the resource that caused the conflict exception.
" + }, + "resourceType":{ + "shape":"String", + "documentation":"The type or category of the resource that caused the conflict exception.\"
" + } + }, + "documentation":"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.
A name to identify the cluster. Example: MyCluster
The cluster management and job scheduling software associated with the cluster.
" + }, + "size":{ + "shape":"Size", + "documentation":"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
The networking configuration used to set up the cluster's control plane.
" + }, + "slurmConfiguration":{ + "shape":"ClusterSlurmConfigurationRequest", + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"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.
" + } + } + }, + "CreateClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"The cluster resource.
" + } + } + }, + "CreateComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupName", + "subnetIds", + "customLaunchTemplate", + "iamInstanceProfileArn", + "scalingConfiguration", + "instanceConfigs" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster to create a compute node group in.
" + }, + "computeNodeGroupName":{ + "shape":"ComputeNodeGroupName", + "documentation":"A name to identify the cluster. Example: MyCluster
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.
" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"The list of subnet IDs where the compute node group launches instances. Subnets must be in the same VPC as the cluster.
" + }, + "purchaseOption":{ + "shape":"PurchaseOption", + "documentation":"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.
" + }, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "iamInstanceProfileArn":{ + "shape":"InstanceProfileArn", + "documentation":"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
.
Specifies the boundaries of the compute node group auto scaling.
" + }, + "instanceConfigs":{ + "shape":"InstanceList", + "documentation":"A list of EC2 instance configurations that Amazon Web Services PCS can provision in the compute node group.
" + }, + "spotOptions":{"shape":"SpotOptions"}, + "slurmConfiguration":{ + "shape":"ComputeNodeGroupSlurmConfigurationRequest", + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"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.
" + } + } + }, + "CreateComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "CreateQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueName" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster for which to create a queue.
" + }, + "queueName":{ + "shape":"QueueName", + "documentation":"A name to identify the queue.
" + }, + "computeNodeGroupConfigurations":{ + "shape":"ComputeNodeGroupConfigurationList", + "documentation":"The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"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.
" + } + } + }, + "CreateQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "CustomLaunchTemplate":{ + "type":"structure", + "required":[ + "id", + "version" + ], + "members":{ + "id":{ + "shape":"String", + "documentation":"The ID of the EC2 launch template to use to provision instances.
Example: lt-xxxx
The version of the EC2 launch template to use to provision instances.
" + } + }, + "documentation":"An Amazon EC2 launch template Amazon Web Services PCS uses to launch compute nodes.
" + }, + "DeleteClusterRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster to delete.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + } + } + }, + "DeleteClusterResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the compute node group.
" + }, + "computeNodeGroupIdentifier":{ + "shape":"ComputeNodeGroupIdentifier", + "documentation":"The name or ID of the compute node group to delete.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + } + } + }, + "DeleteComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the queue.
" + }, + "queueIdentifier":{ + "shape":"QueueIdentifier", + "documentation":"The name or ID of the queue to delete.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + } + } + }, + "DeleteQueueResponse":{ + "type":"structure", + "members":{ + } + }, + "Endpoint":{ + "type":"structure", + "required":[ + "type", + "privateIpAddress", + "port" + ], + "members":{ + "type":{ + "shape":"EndpointType", + "documentation":"Indicates the type of endpoint running at the specific IP address.
" + }, + "privateIpAddress":{ + "shape":"String", + "documentation":"The endpoint's private IP address.
Example: 2.2.2.2
The endpoint's public IP address.
Example: 1.1.1.1
The endpoint's connection port number.
Example: 1234
An endpoint available for interaction with the scheduler.
" + }, + "EndpointType":{ + "type":"string", + "enum":[ + "SLURMCTLD", + "SLURMDBD" + ] + }, + "Endpoints":{ + "type":"list", + "member":{"shape":"Endpoint"} + }, + "ErrorInfo":{ + "type":"structure", + "members":{ + "code":{ + "shape":"String", + "documentation":"The short-form error code.
" + }, + "message":{ + "shape":"String", + "documentation":"The detailed error information.
" + } + }, + "documentation":"An error that occurred during resource creation.
" + }, + "ErrorInfoList":{ + "type":"list", + "member":{"shape":"ErrorInfo"} + }, + "GetClusterRequest":{ + "type":"structure", + "required":["clusterIdentifier"], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the queue.
" + } + } + }, + "GetClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"The cluster resource.
" + } + } + }, + "GetComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster.
" + }, + "computeNodeGroupIdentifier":{ + "shape":"ComputeNodeGroupIdentifier", + "documentation":"The name or ID of the compute node group.
" + } + } + }, + "GetComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "GetQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the queue.
" + }, + "queueIdentifier":{ + "shape":"QueueIdentifier", + "documentation":"The name or ID of the queue.
" + } + } + }, + "GetQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "InstanceConfig":{ + "type":"structure", + "members":{ + "instanceType":{ + "shape":"String", + "documentation":"The EC2 instance type that Amazon Web Services PCS can provision in the compute node group.
Example: t2.xlarge
An EC2 instance configuration Amazon Web Services PCS uses to launch compute nodes.
" + }, + "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"} + }, + "documentation":"Amazon Web Services PCS can't process your request right now. Try again later.
", + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListClustersRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"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.
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.
The list of clusters.
" + }, + "nextToken":{ + "shape":"String", + "documentation":"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.
The name or ID of the cluster to list compute node groups for.
" + }, + "nextToken":{ + "shape":"String", + "documentation":"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.
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.
The list of compute node groups for the cluster.
" + }, + "nextToken":{ + "shape":"String", + "documentation":"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.
The name or ID of the cluster to list queues for.
" + }, + "nextToken":{ + "shape":"String", + "documentation":"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.
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.
The list of queues associated with the cluster.
" + }, + "nextToken":{ + "shape":"String", + "documentation":"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.
The Amazon Resource Name (ARN) of the resource for which to list tags.
" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"ResponseTagMap", + "documentation":"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.
" + } + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "Networking":{ + "type":"structure", + "members":{ + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"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
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
The networking configuration for the cluster's control plane.
" + }, + "NetworkingRequest":{ + "type":"structure", + "members":{ + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"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.
A list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.
" + } + }, + "documentation":"The networking configuration for the cluster's control plane.
" + }, + "PurchaseOption":{ + "type":"string", + "enum":[ + "ONDEMAND", + "SPOT" + ] + }, + "Queue":{ + "type":"structure", + "required":[ + "name", + "id", + "arn", + "clusterId", + "createdAt", + "modifiedAt", + "status", + "computeNodeGroupConfigurations" + ], + "members":{ + "name":{ + "shape":"QueueName", + "documentation":"The name that identifies the queue.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the queue.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the queue.
" + }, + "clusterId":{ + "shape":"String", + "documentation":"The ID of the cluster of the queue.
" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "status":{ + "shape":"QueueStatus", + "documentation":"The provisioning status of the queue.
The provisioning status doesn't indicate the overall health of the queue.
The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.
" + }, + "errorInfo":{ + "shape":"ErrorInfoList", + "documentation":"The list of errors that occurred during queue provisioning.
" + } + }, + "documentation":"A queue resource.
" + }, + "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", + "documentation":"The name that identifies the queue.
" + }, + "id":{ + "shape":"String", + "documentation":"The generated unique ID of the queue.
" + }, + "arn":{ + "shape":"String", + "documentation":"The unique Amazon Resource Name (ARN) of the queue.
" + }, + "clusterId":{ + "shape":"String", + "documentation":"The ID of the cluster of the queue.
" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was created.
" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"The date and time the resource was modified.
" + }, + "status":{ + "shape":"QueueStatus", + "documentation":"The provisioning status of the queue.
The provisioning status doesn't indicate the overall health of the queue.
The object returned by the ListQueues
API action.
The name or ID of the cluster to register the compute node group instance in.
" + }, + "bootstrapId":{ + "shape":"BootstrapId", + "documentation":"The client-generated token to allow for retries.
" + } + } + }, + "RegisterComputeNodeGroupInstanceResponse":{ + "type":"structure", + "required":[ + "nodeID", + "sharedSecret", + "endpoints" + ], + "members":{ + "nodeID":{ + "shape":"String", + "documentation":"The scheduler node ID for this instance.
" + }, + "sharedSecret":{ + "shape":"SharedSecret", + "documentation":"For the Slurm scheduler, this is the shared Munge key the scheduler uses to authenticate compute node group instances.
" + }, + "endpoints":{ + "shape":"Endpoints", + "documentation":"The list of endpoints available for interaction with the scheduler.
" + } + } + }, + "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", + "documentation":"The unique identifier of the resource that was not found.
" + }, + "resourceType":{ + "shape":"String", + "documentation":"The type or category of the resource that was not found.
" + } + }, + "documentation":"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
", + "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", + "documentation":"The lower bound of the number of instances allowed in the compute fleet.
" + }, + "maxInstanceCount":{ + "shape":"ScalingConfigurationMaxInstanceCountInteger", + "documentation":"The upper bound of the number of instances allowed in the compute fleet.
" + } + }, + "documentation":"Specifies the boundaries of the compute node group auto scaling.
" + }, + "ScalingConfigurationMaxInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationMinInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationRequest":{ + "type":"structure", + "required":[ + "minInstanceCount", + "maxInstanceCount" + ], + "members":{ + "minInstanceCount":{ + "shape":"ScalingConfigurationRequestMinInstanceCountInteger", + "documentation":"The lower bound of the number of instances allowed in the compute fleet.
" + }, + "maxInstanceCount":{ + "shape":"ScalingConfigurationRequestMaxInstanceCountInteger", + "documentation":"The upper bound of the number of instances allowed in the compute fleet.
" + } + }, + "documentation":"Specifies the boundaries of the compute node group auto scaling.
" + }, + "ScalingConfigurationRequestMaxInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "ScalingConfigurationRequestMinInstanceCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "Scheduler":{ + "type":"structure", + "required":[ + "type", + "version" + ], + "members":{ + "type":{ + "shape":"SchedulerType", + "documentation":"The software Amazon Web Services PCS uses to manage cluster scaling and job scheduling.
" + }, + "version":{ + "shape":"String", + "documentation":"The version of the specified scheduling software that Amazon Web Services PCS uses to manage cluster scaling and job scheduling.
" + } + }, + "documentation":"The cluster management and job scheduling software associated with the cluster.
" + }, + "SchedulerRequest":{ + "type":"structure", + "required":[ + "type", + "version" + ], + "members":{ + "type":{ + "shape":"SchedulerType", + "documentation":"The software Amazon Web Services PCS uses to manage cluster scaling and job scheduling.
" + }, + "version":{ + "shape":"String", + "documentation":"The version of the specified scheduling software that Amazon Web Services PCS uses to manage cluster scaling and job scheduling.
" + } + }, + "documentation":"The cluster management and job scheduling software associated with the cluster.
" + }, + "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", + "documentation":"The service code associated with the quota that was exceeded.
" + }, + "resourceId":{ + "shape":"String", + "documentation":"The unique identifier of the resource that caused the quota to be exceeded.
" + }, + "resourceType":{ + "shape":"String", + "documentation":"The type or category of the resource that caused the quota to be exceeded.
" + }, + "quotaCode":{ + "shape":"String", + "documentation":"The quota code of the service quota that was exceeded.
" + } + }, + "documentation":"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
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.
The Amazon Resource Name (ARN) of the the shared Slurm key.
" + }, + "secretVersion":{ + "shape":"String", + "documentation":"The version of the shared Slurm key.
" + } + }, + "documentation":"The shared Slurm key for authentication, also known as the cluster secret.
" + }, + "SlurmCustomSetting":{ + "type":"structure", + "required":[ + "parameterName", + "parameterValue" + ], + "members":{ + "parameterName":{ + "shape":"String", + "documentation":"Amazon Web Services PCS supports configuration of the following Slurm parameters: Prolog
, Epilog
, and SelectTypeParameters
.
The values for the configured Slurm settings.
" + } + }, + "documentation":"Additional settings that directly map to Slurm settings.
" + }, + "SlurmCustomSettings":{ + "type":"list", + "member":{"shape":"SlurmCustomSetting"} + }, + "SpotAllocationStrategy":{ + "type":"string", + "enum":[ + "lowest-price", + "capacity-optimized", + "price-capacity-optimized" + ] + }, + "SpotOptions":{ + "type":"structure", + "members":{ + "allocationStrategy":{ + "shape":"SpotAllocationStrategy", + "documentation":"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.
" + } + }, + "documentation":"Additional configuration when you specify SPOT
as the purchaseOption
for the CreateComputeNodeGroup
API action.
The Amazon Resource Name (ARN) of the resource.
" + }, + "tags":{ + "shape":"RequestTagMap", + "documentation":"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.
" + } + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"The number of seconds to wait before retrying the request.
" + } + }, + "documentation":"Your request exceeded a request rate quota. Check the resource's request rate quota and try again.
", + "exception":true, + "retryable":{"throttling":false} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"The Amazon Resource Name (ARN) of the resource.
" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"1 or more tag keys to remove from the resource. Specify only tag keys and not tag values.
" + } + } + }, + "UpdateComputeNodeGroupRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "computeNodeGroupIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the compute node group.
" + }, + "computeNodeGroupIdentifier":{ + "shape":"ComputeNodeGroupIdentifier", + "documentation":"The name or ID of the compute node group.
" + }, + "amiId":{ + "shape":"AmiId", + "documentation":"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.
" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster.
" + }, + "customLaunchTemplate":{"shape":"CustomLaunchTemplate"}, + "purchaseOption":{ + "shape":"PurchaseOption", + "documentation":"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.
" + }, + "spotOptions":{"shape":"SpotOptions"}, + "scalingConfiguration":{ + "shape":"ScalingConfigurationRequest", + "documentation":"Specifies the boundaries of the compute node group auto scaling.
" + }, + "iamInstanceProfileArn":{ + "shape":"InstanceProfileArn", + "documentation":"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.
Additional options related to the Slurm scheduler.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + } + } + }, + "UpdateComputeNodeGroupResponse":{ + "type":"structure", + "members":{ + "computeNodeGroup":{"shape":"ComputeNodeGroup"} + } + }, + "UpdateComputeNodeGroupSlurmConfigurationRequest":{ + "type":"structure", + "members":{ + "slurmCustomSettings":{ + "shape":"SlurmCustomSettings", + "documentation":"Additional Slurm-specific configuration that directly maps to Slurm settings.
" + } + }, + "documentation":"Additional options related to the Slurm scheduler.
" + }, + "UpdateQueueRequest":{ + "type":"structure", + "required":[ + "clusterIdentifier", + "queueIdentifier" + ], + "members":{ + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"The name or ID of the cluster of the queue.
" + }, + "queueIdentifier":{ + "shape":"QueueIdentifier", + "documentation":"The name or ID of the queue.
" + }, + "computeNodeGroupConfigurations":{ + "shape":"ComputeNodeGroupConfigurationList", + "documentation":"The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.
" + }, + "clientToken":{ + "shape":"SBClientToken", + "documentation":"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.
", + "idempotencyToken":true + } + } + }, + "UpdateQueueResponse":{ + "type":"structure", + "members":{ + "queue":{"shape":"Queue"} + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"The specific reason or cause of the validation error.
" + }, + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"A list of fields or properties that failed validation.
" + } + }, + "documentation":"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.
The name of the exception.
" + }, + "message":{ + "shape":"String", + "documentation":"The message body of the exception.
" + } + }, + "documentation":"Stores information about a field in a request that caused an exception.
" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + } + }, + "documentation":"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.
" +} diff --git a/botocore/data/pcs/2023-02-10/waiters-2.json b/botocore/data/pcs/2023-02-10/waiters-2.json new file mode 100644 index 0000000000..13f60ee66b --- /dev/null +++ b/botocore/data/pcs/2023-02-10/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/botocore/data/workspaces/2015-04-08/service-2.json b/botocore/data/workspaces/2015-04-08/service-2.json index 67fad796ef..6f0b46e385 100644 --- a/botocore/data/workspaces/2015-04-08/service-2.json +++ b/botocore/data/workspaces/2015-04-08/service-2.json @@ -1223,7 +1223,7 @@ }, "input":{"shape":"StartWorkspacesRequest"}, "output":{"shape":"StartWorkspacesResult"}, - "documentation":"Starts the specified WorkSpaces.
You cannot start a WorkSpace unless it has a running mode of AutoStop
and a state of STOPPED
.
Starts the specified WorkSpaces.
You cannot start a WorkSpace unless it has a running mode of AutoStop
or Manual
and a state of STOPPED
.
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
.
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
.
The name of the user-decoupled WorkSpace.
" + "documentation":"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.
Describes the information used to create a WorkSpace.
" diff --git a/docs/source/conf.py b/docs/source/conf.py index bd45127f2f..3135e926ab 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.35' # The full version, including alpha/beta/rc tags. -release = '1.35.7' +release = '1.35.8' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/functional/endpoint-rules/pcs/endpoint-tests-1.json b/tests/functional/endpoint-rules/pcs/endpoint-tests-1.json new file mode 100644 index 0000000000..579a85f57a --- /dev/null +++ b/tests/functional/endpoint-rules/pcs/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