diff --git a/CHANGELOG.md b/CHANGELOG.md index 94340589bf7..82acd9b5304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +Release v1.53.15 (2024-06-03) +=== + +### Service Client Updates +* `service/amplify`: Updates service documentation +* `service/batch`: Updates service API and documentation + * This release adds support for the AWS Batch GetJobQueueSnapshot API operation. +* `service/eks`: Updates service API and documentation +* `service/iottwinmaker`: Updates service API + Release v1.53.14 (2024-05-31) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index fa5625df41f..02e58be383e 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -45743,42 +45743,12 @@ var awsisoPartition = partition{ }, "ram": service{ Endpoints: serviceEndpoints{ - endpointKey{ - Region: "fips-us-iso-east-1", - }: endpoint{ - Hostname: "ram-fips.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - Deprecated: boxedTrue, - }, - endpointKey{ - Region: "fips-us-iso-west-1", - }: endpoint{ - Hostname: "ram-fips.us-iso-west-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-west-1", - }, - Deprecated: boxedTrue, - }, endpointKey{ Region: "us-iso-east-1", }: endpoint{}, - endpointKey{ - Region: "us-iso-east-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "ram-fips.us-iso-east-1.c2s.ic.gov", - }, endpointKey{ Region: "us-iso-west-1", }: endpoint{}, - endpointKey{ - Region: "us-iso-west-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "ram-fips.us-iso-west-1.c2s.ic.gov", - }, }, }, "rbin": service{ @@ -46866,24 +46836,9 @@ var awsisobPartition = partition{ }, "ram": service{ Endpoints: serviceEndpoints{ - endpointKey{ - Region: "fips-us-isob-east-1", - }: endpoint{ - Hostname: "ram-fips.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - Deprecated: boxedTrue, - }, endpointKey{ Region: "us-isob-east-1", }: endpoint{}, - endpointKey{ - Region: "us-isob-east-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "ram-fips.us-isob-east-1.sc2s.sgov.gov", - }, }, }, "rbin": service{ diff --git a/aws/version.go b/aws/version.go index 60b9f8636f6..70477d98882 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.53.14" +const SDKVersion = "1.53.15" diff --git a/models/apis/amplify/2017-07-25/docs-2.json b/models/apis/amplify/2017-07-25/docs-2.json index f11f6191ad3..29753d9e85b 100644 --- a/models/apis/amplify/2017-07-25/docs-2.json +++ b/models/apis/amplify/2017-07-25/docs-2.json @@ -3,13 +3,13 @@ "service": "

Amplify enables developers to develop and deploy cloud-powered mobile and web apps. Amplify Hosting provides a continuous delivery and hosting service for web applications. For more information, see the Amplify Hosting User Guide. The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the Amplify Framework.

", "operations": { "CreateApp": "

Creates a new Amplify app.

", - "CreateBackendEnvironment": "

Creates a new backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to applications created using the Amplify Gen 2 public preview. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "CreateBackendEnvironment": "

Creates a new backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", "CreateBranch": "

Creates a new branch for an Amplify app.

", "CreateDeployment": "

Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository.

The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail.

", "CreateDomainAssociation": "

Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app

", "CreateWebhook": "

Creates a new webhook on an Amplify app.

", "DeleteApp": "

Deletes an existing Amplify app specified by an app ID.

", - "DeleteBackendEnvironment": "

Deletes a backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend was created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to applications created using the Amplify Gen 2 public preview. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "DeleteBackendEnvironment": "

Deletes a backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", "DeleteBranch": "

Deletes a branch for an Amplify app.

", "DeleteDomainAssociation": "

Deletes a domain association for an Amplify app.

", "DeleteJob": "

Deletes a job for a branch of an Amplify app.

", @@ -17,14 +17,14 @@ "GenerateAccessLogs": "

Returns the website access logs for a specific time range using a presigned URL.

", "GetApp": "

Returns an existing Amplify app specified by an app ID.

", "GetArtifactUrl": "

Returns the artifact info that corresponds to an artifact id.

", - "GetBackendEnvironment": "

Returns a backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend was created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to applications created using the Amplify Gen 2 public preview. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "GetBackendEnvironment": "

Returns a backend environment for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", "GetBranch": "

Returns a branch for an Amplify app.

", "GetDomainAssociation": "

Returns the domain information for an Amplify app.

", "GetJob": "

Returns a job for a branch of an Amplify app.

", "GetWebhook": "

Returns the webhook information that corresponds to a specified webhook ID.

", "ListApps": "

Returns a list of the existing Amplify apps.

", "ListArtifacts": "

Returns a list of artifacts for a specified app, branch, and job.

", - "ListBackendEnvironments": "

Lists the backend environments for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend was created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to applications created using the Amplify Gen 2 public preview. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "ListBackendEnvironments": "

Lists the backend environments for an Amplify app.

This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", "ListBranches": "

Lists the branches of an Amplify app.

", "ListDomainAssociations": "

Returns the domain associations for an Amplify app.

", "ListJobs": "

Lists the jobs for a branch of an Amplify app.

", @@ -205,15 +205,15 @@ } }, "Backend": { - "base": "

Describes the backend properties associated with an Amplify Branch.

", + "base": "

Describes the backend associated with an Amplify Branch.

This property is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", "refs": { "Branch$backend": null, - "CreateBranchRequest$backend": "

The backend for a Branch of an Amplify app. Use for a backend created from an CloudFormation stack.

", - "UpdateBranchRequest$backend": "

The backend for a Branch of an Amplify app. Use for a backend created from an CloudFormation stack.

" + "CreateBranchRequest$backend": "

The backend for a Branch of an Amplify app. Use for a backend created from an CloudFormation stack.

This field is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "UpdateBranchRequest$backend": "

The backend for a Branch of an Amplify app. Use for a backend created from an CloudFormation stack.

This field is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

" } }, "BackendEnvironment": { - "base": "

Describes the backend environment for an Amplify app.

", + "base": "

Describes the backend environment associated with a Branch of a Gen 1 Amplify app. Amplify Gen 1 applications are created using Amplify Studio or the Amplify command line interface (CLI).

", "refs": { "BackendEnvironments$member": null, "CreateBackendEnvironmentResult$backendEnvironment": "

Describes the backend environment for an Amplify app.

", @@ -225,9 +225,9 @@ "base": null, "refs": { "BackendEnvironment$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

", - "Branch$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

", - "CreateBranchRequest$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

", - "UpdateBranchRequest$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

" + "Branch$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

This property is available to Amplify Gen 1 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

", + "CreateBranchRequest$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of a Gen 1 Amplify app.

This field is available to Amplify Gen 1 apps only where the backend is created using Amplify Studio or the Amplify command line interface (CLI).

", + "UpdateBranchRequest$backendEnvironmentArn": "

The Amazon Resource Name (ARN) for a backend environment that is part of a Gen 1 Amplify app.

This field is available to Amplify Gen 1 apps only where the backend is created using Amplify Studio or the Amplify command line interface (CLI).

" } }, "BackendEnvironments": { diff --git a/models/apis/batch/2016-08-10/api-2.json b/models/apis/batch/2016-08-10/api-2.json index f2f8ab83ddc..b1e74cf89e9 100644 --- a/models/apis/batch/2016-08-10/api-2.json +++ b/models/apis/batch/2016-08-10/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"batch", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"AWS Batch", "serviceFullName":"AWS Batch", "serviceId":"Batch", @@ -181,6 +182,19 @@ {"shape":"ServerException"} ] }, + "GetJobQueueSnapshot":{ + "name":"GetJobQueueSnapshot", + "http":{ + "method":"POST", + "requestUri":"/v1/getjobqueuesnapshot" + }, + "input":{"shape":"GetJobQueueSnapshotRequest"}, + "output":{"shape":"GetJobQueueSnapshotResponse"}, + "errors":[ + {"shape":"ClientException"}, + {"shape":"ServerException"} + ] + }, "ListJobs":{ "name":"ListJobs", "http":{ @@ -1279,6 +1293,37 @@ } }, "Float":{"type":"float"}, + "FrontOfQueueDetail":{ + "type":"structure", + "members":{ + "jobs":{"shape":"FrontOfQueueJobSummaryList"}, + "lastUpdatedAt":{"shape":"Long"} + } + }, + "FrontOfQueueJobSummary":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"String"}, + "earliestTimeAtPosition":{"shape":"Long"} + } + }, + "FrontOfQueueJobSummaryList":{ + "type":"list", + "member":{"shape":"FrontOfQueueJobSummary"} + }, + "GetJobQueueSnapshotRequest":{ + "type":"structure", + "required":["jobQueue"], + "members":{ + "jobQueue":{"shape":"String"} + } + }, + "GetJobQueueSnapshotResponse":{ + "type":"structure", + "members":{ + "frontOfQueue":{"shape":"FrontOfQueueDetail"} + } + }, "Host":{ "type":"structure", "members":{ diff --git a/models/apis/batch/2016-08-10/docs-2.json b/models/apis/batch/2016-08-10/docs-2.json index 5ebc39a37fb..52e6d86e632 100644 --- a/models/apis/batch/2016-08-10/docs-2.json +++ b/models/apis/batch/2016-08-10/docs-2.json @@ -15,6 +15,7 @@ "DescribeJobQueues": "

Describes one or more of your job queues.

", "DescribeJobs": "

Describes a list of Batch jobs.

", "DescribeSchedulingPolicies": "

Describes one or more of your scheduling policies.

", + "GetJobQueueSnapshot": "

Provides a list of the first 100 RUNNABLE jobs associated to a single job queue.

", "ListJobs": "

Returns a list of Batch jobs.

You must specify only one of the following items:

You can filter the results by job status with the jobStatus parameter. If you don't specify a status, only RUNNING jobs are returned.

", "ListSchedulingPolicies": "

Returns a list of Batch scheduling policies.

", "ListTagsForResource": "

Lists the tags for an Batch resource. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", @@ -726,6 +727,34 @@ "ShareAttributes$weightFactor": "

The weight factor for the fair share identifier. The default value is 1.0. A lower value has a higher priority for compute resources. For example, jobs that use a share identifier with a weight factor of 0.125 (1/8) get 8 times the compute resources of jobs that use a share identifier with a weight factor of 1.

The smallest supported value is 0.0001, and the largest supported value is 999.9999.

" } }, + "FrontOfQueueDetail": { + "base": "

Contains a list of the first 100 RUNNABLE jobs associated to a single job queue.

", + "refs": { + "GetJobQueueSnapshotResponse$frontOfQueue": "

The list of the first 100 RUNNABLE jobs in each job queue. For first-in-first-out (FIFO) job queues, jobs are ordered based on their submission time. For fair share scheduling (FSS) job queues, jobs are ordered based on their job priority and share usage.

" + } + }, + "FrontOfQueueJobSummary": { + "base": "

An object that represents summary details for the first 100 RUNNABLE jobs in a job queue.

", + "refs": { + "FrontOfQueueJobSummaryList$member": null + } + }, + "FrontOfQueueJobSummaryList": { + "base": null, + "refs": { + "FrontOfQueueDetail$jobs": "

The Amazon Resource Names (ARNs) of the first 100 RUNNABLE jobs in a named job queue. For first-in-first-out (FIFO) job queues, jobs are ordered based on their submission time. For fair share scheduling (FSS) job queues, jobs are ordered based on their job priority and share usage.

" + } + }, + "GetJobQueueSnapshotRequest": { + "base": null, + "refs": { + } + }, + "GetJobQueueSnapshotResponse": { + "base": null, + "refs": { + } + }, "Host": { "base": "

Determine whether your data volume persists on the host container instance and where it's stored. If this parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.

", "refs": { @@ -806,7 +835,7 @@ "LinuxParameters$sharedMemorySize": "

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the --shm-size option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

", "LinuxParameters$maxSwap": "

The total amount of swap memory (in MiB) a container can use. This parameter is translated to the --memory-swap option to docker run where the value is the sum of the container memory plus the maxSwap value. For more information, see --memory-swap details in the Docker documentation.

If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't use the swap configuration for the container instance that it's running on. A maxSwap value must be set for the swappiness parameter to be used.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

", "LinuxParameters$swappiness": "

You can use this parameter to tune a container's memory swappiness behavior. A swappiness value of 0 causes swapping to not occur unless absolutely necessary. A swappiness value of 100 causes pages to be swapped aggressively. Valid values are whole numbers between 0 and 100. If the swappiness parameter isn't specified, a default value of 60 is used. If a value isn't specified for maxSwap, then this parameter is ignored. If maxSwap is set to 0, the container doesn't use swap. This parameter maps to the --memory-swappiness option to docker run.

Consider the following when you use a per-container swap configuration.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

", - "ListJobsRequest$maxResults": "

The maximum number of results returned by ListJobs in paginated output. When this parameter is used, ListJobs only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another ListJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListJobs returns up to 100 results and a nextToken value if applicable.

", + "ListJobsRequest$maxResults": "

The maximum number of results returned by ListJobs in a paginated output. When this parameter is used, ListJobs returns up to maxResults results in a single page and a nextToken response element, if applicable. The remaining results of the initial request can be seen by sending another ListJobs request with the returned nextToken value.

The following outlines key parameters and limitations:

", "ListSchedulingPoliciesRequest$maxResults": "

The maximum number of results that's returned by ListSchedulingPolicies in paginated output. When this parameter is used, ListSchedulingPolicies only returns maxResults results in a single page and a nextToken response element. You can see the remaining results of the initial request by sending another ListSchedulingPolicies request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, ListSchedulingPolicies returns up to 100 results and a nextToken value if applicable.

", "NodeDetails$nodeIndex": "

The node index for the node. Node index numbering starts at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable.

", "NodeOverrides$numNodes": "

The number of nodes to use with a multi-node parallel job. This value overrides the number of nodes that are specified in the job definition. To use this override, you must meet the following conditions:

", @@ -1104,6 +1133,8 @@ "EksAttemptDetail$stoppedAt": "

The Unix timestamp (in milliseconds) for when the attempt was stopped. This happens when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

", "EksContainerSecurityContext$runAsUser": "

When this parameter is specified, the container is run as the specified user ID (uid). If this parameter isn't specified, the default is the user that's specified in the image metadata. This parameter maps to RunAsUser and MustRanAs policy in the Users and groups pod security policies in the Kubernetes documentation.

", "EksContainerSecurityContext$runAsGroup": "

When this parameter is specified, the container is run as the specified group ID (gid). If this parameter isn't specified, the default is the group that's specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs policy in the Users and groups pod security policies in the Kubernetes documentation.

", + "FrontOfQueueDetail$lastUpdatedAt": "

The Unix timestamp (in milliseconds) for when each of the first 100 RUNNABLE jobs were last updated.

", + "FrontOfQueueJobSummary$earliestTimeAtPosition": "

The Unix timestamp (in milliseconds) for when the job transitioned to its current position in the job queue.

", "JobDetail$createdAt": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state. This is specifically at the time SubmitJob was called. For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

", "JobDetail$startedAt": "

The Unix timestamp (in milliseconds) for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state.

", "JobDetail$stoppedAt": "

The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

", @@ -1489,6 +1520,8 @@ "EvaluateOnExit$onReason": "

Contains a glob pattern to match against the Reason returned for a job. The pattern can contain up to 512 characters. It can contain letters, numbers, periods (.), colons (:), and white space (including spaces and tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

", "EvaluateOnExit$onExitCode": "

Contains a glob pattern to match against the decimal representation of the ExitCode returned for a job. The pattern can be up to 512 characters long. It can contain only numbers, and can end with an asterisk (*) so that only the start of the string needs to be an exact match.

The string can contain up to 512 characters.

", "FargatePlatformConfiguration$platformVersion": "

The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are running on Fargate resources. If one isn't specified, the LATEST platform version is used by default. This uses a recent, approved version of the Fargate platform for compute resources. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

", + "FrontOfQueueJobSummary$jobArn": "

The ARN for a job in a named job queue.

", + "GetJobQueueSnapshotRequest$jobQueue": "

The job queue’s name or full queue Amazon Resource Name (ARN).

", "Host$sourcePath": "

The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.

This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.

", "ImagePullSecret$name": "

Provides a unique identifier for the ImagePullSecret. This object is required when EksPodProperties$imagePullSecrets is used.

", "JobDefinition$jobDefinitionName": "

The name of the job definition.

", diff --git a/models/apis/eks/2017-11-01/api-2.json b/models/apis/eks/2017-11-01/api-2.json index 8041b493f1b..63332c76c4f 100644 --- a/models/apis/eks/2017-11-01/api-2.json +++ b/models/apis/eks/2017-11-01/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"eks", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"Amazon EKS", "serviceFullName":"Amazon Elastic Kubernetes Service", "serviceId":"EKS", @@ -982,7 +983,8 @@ "publisher":{"shape":"String"}, "owner":{"shape":"String"}, "marketplaceInformation":{"shape":"MarketplaceInformation"}, - "configurationValues":{"shape":"String"} + "configurationValues":{"shape":"String"}, + "podIdentityAssociations":{"shape":"StringList"} } }, "AddonHealth":{ @@ -1020,13 +1022,41 @@ "ConfigurationConflict", "AdmissionRequestDenied", "UnsupportedAddonModification", - "K8sResourceNotFound" + "K8sResourceNotFound", + "AddonSubscriptionNeeded", + "AddonPermissionFailure" ] }, "AddonIssueList":{ "type":"list", "member":{"shape":"AddonIssue"} }, + "AddonPodIdentityAssociations":{ + "type":"structure", + "required":[ + "serviceAccount", + "roleArn" + ], + "members":{ + "serviceAccount":{"shape":"String"}, + "roleArn":{"shape":"String"} + } + }, + "AddonPodIdentityAssociationsList":{ + "type":"list", + "member":{"shape":"AddonPodIdentityAssociations"} + }, + "AddonPodIdentityConfiguration":{ + "type":"structure", + "members":{ + "serviceAccount":{"shape":"String"}, + "recommendedManagedPolicies":{"shape":"StringList"} + } + }, + "AddonPodIdentityConfigurationList":{ + "type":"list", + "member":{"shape":"AddonPodIdentityConfiguration"} + }, "AddonStatus":{ "type":"string", "enum":[ @@ -1046,7 +1076,8 @@ "addonVersion":{"shape":"String"}, "architecture":{"shape":"StringList"}, "compatibilities":{"shape":"Compatibilities"}, - "requiresConfiguration":{"shape":"Boolean"} + "requiresConfiguration":{"shape":"Boolean"}, + "requiresIamPermissions":{"shape":"Boolean"} } }, "AddonVersionInfoList":{ @@ -1439,7 +1470,8 @@ "idempotencyToken":true }, "tags":{"shape":"TagMap"}, - "configurationValues":{"shape":"String"} + "configurationValues":{"shape":"String"}, + "podIdentityAssociations":{"shape":"AddonPodIdentityAssociationsList"} } }, "CreateAddonResponse":{ @@ -1848,7 +1880,8 @@ "members":{ "addonName":{"shape":"String"}, "addonVersion":{"shape":"String"}, - "configurationSchema":{"shape":"String"} + "configurationSchema":{"shape":"String"}, + "podIdentityConfiguration":{"shape":"AddonPodIdentityConfigurationList"} } }, "DescribeAddonRequest":{ @@ -3182,7 +3215,8 @@ "associationId":{"shape":"String"}, "tags":{"shape":"TagMap"}, "createdAt":{"shape":"Timestamp"}, - "modifiedAt":{"shape":"Timestamp"} + "modifiedAt":{"shape":"Timestamp"}, + "ownerArn":{"shape":"String"} } }, "PodIdentityAssociationSummaries":{ @@ -3196,7 +3230,8 @@ "namespace":{"shape":"String"}, "serviceAccount":{"shape":"String"}, "associationArn":{"shape":"String"}, - "associationId":{"shape":"String"} + "associationId":{"shape":"String"}, + "ownerArn":{"shape":"String"} } }, "Provider":{ @@ -3483,7 +3518,8 @@ "shape":"String", "idempotencyToken":true }, - "configurationValues":{"shape":"String"} + "configurationValues":{"shape":"String"}, + "podIdentityAssociations":{"shape":"AddonPodIdentityAssociationsList"} } }, "UpdateAddonResponse":{ @@ -3675,7 +3711,8 @@ "ConfigurationValues", "SecurityGroups", "Subnets", - "AuthenticationMode" + "AuthenticationMode", + "PodIdentityAssociations" ] }, "UpdateParams":{ diff --git a/models/apis/eks/2017-11-01/docs-2.json b/models/apis/eks/2017-11-01/docs-2.json index 329e8557542..f7931c5e401 100644 --- a/models/apis/eks/2017-11-01/docs-2.json +++ b/models/apis/eks/2017-11-01/docs-2.json @@ -7,10 +7,10 @@ "AssociateIdentityProviderConfig": "

Associates an identity provider configuration to a cluster.

If you want to authenticate identities using an identity provider, you can create an identity provider configuration and associate it to your cluster. After configuring authentication to your cluster you can create Kubernetes Role and ClusterRole objects, assign permissions to them, and then bind them to the identities using Kubernetes RoleBinding and ClusterRoleBinding objects. For more information see Using RBAC Authorization in the Kubernetes documentation.

", "CreateAccessEntry": "

Creates an access entry.

An access entry allows an IAM principal to access your cluster. Access entries can replace the need to maintain entries in the aws-auth ConfigMap for authentication. You have the following options for authorizing an IAM principal to access Kubernetes objects on your cluster: Kubernetes role-based access control (RBAC), Amazon EKS, or both. Kubernetes RBAC authorization requires you to create and manage Kubernetes Role, ClusterRole, RoleBinding, and ClusterRoleBinding objects, in addition to managing access entries. If you use Amazon EKS authorization exclusively, you don't need to create and manage Kubernetes Role, ClusterRole, RoleBinding, and ClusterRoleBinding objects.

For more information about access entries, see Access entries in the Amazon EKS User Guide.

", "CreateAddon": "

Creates an Amazon EKS add-on.

Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.

", - "CreateCluster": "

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as etcd and the API server. The control plane runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant and unique. It runs on its own set of Amazon EC2 instances.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support kubectl exec, logs, and proxy data flows).

Amazon EKS nodes run in your Amazon Web Services account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.

You can use the endpointPublicAccess and endpointPrivateAccess parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .

You can use the logging parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.

In most cases, it takes several minutes to create a cluster. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS nodes in the Amazon EKS User Guide.

", + "CreateCluster": "

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as etcd and the API server. The control plane runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant and unique. It runs on its own set of Amazon EC2 instances.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support kubectl exec, logs, and proxy data flows).

Amazon EKS nodes run in your Amazon Web Services account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.

You can use the endpointPublicAccess and endpointPrivateAccess parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .

You can use the logging parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.

In most cases, it takes several minutes to create a cluster. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see Allowing users to access your cluster and Launching Amazon EKS nodes in the Amazon EKS User Guide.

", "CreateEksAnywhereSubscription": "

Creates an EKS Anywhere subscription. When a subscription is created, it is a contract agreement for the length of the term specified in the request. Licenses that are used to validate support are provisioned in Amazon Web Services License Manager and the caller account is granted access to EKS Anywhere Curated Packages.

", "CreateFargateProfile": "

Creates an Fargate profile for your Amazon EKS cluster. You must have at least one Fargate profile in a cluster to be able to run pods on Fargate.

The Fargate profile allows an administrator to declare which pods run on Fargate and specify which pods run on which Fargate profile. This declaration is done through the profile’s selectors. Each profile can have up to five selectors that contain a namespace and labels. A namespace is required for every selector. The label field consists of multiple optional key-value pairs. Pods that match the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, then that pod is run on Fargate.

When you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes Role Based Access Control (RBAC) for authorization so that the kubelet that is running on the Fargate infrastructure can register with your Amazon EKS cluster so that it can appear in your cluster as a node. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see Pod Execution Role in the Amazon EKS User Guide.

Fargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating.

If any Fargate profiles in a cluster are in the DELETING status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster.

For more information, see Fargate profile in the Amazon EKS User Guide.

", - "CreateNodegroup": "

Creates a managed node group for an Amazon EKS cluster.

You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For more information about using launch templates, see Launch template support.

An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by Amazon Web Services for an Amazon EKS cluster. For more information, see Managed node groups in the Amazon EKS User Guide.

Windows AMI types are only supported for commercial Amazon Web Services Regions that support Windows on Amazon EKS.

", + "CreateNodegroup": "

Creates a managed node group for an Amazon EKS cluster.

You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For more information about using launch templates, see Customizing managed nodes with launch templates.

An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by Amazon Web Services for an Amazon EKS cluster. For more information, see Managed node groups in the Amazon EKS User Guide.

Windows AMI types are only supported for commercial Amazon Web Services Regions that support Windows on Amazon EKS.

", "CreatePodIdentityAssociation": "

Creates an EKS Pod Identity association between a service account in an Amazon EKS cluster and an IAM role with EKS Pod Identity. Use EKS Pod Identity to give temporary IAM credentials to pods and the credentials are rotated automatically.

Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.

If a pod uses a service account that has an association, Amazon EKS sets environment variables in the containers of the pod. The environment variables configure the Amazon Web Services SDKs, including the Command Line Interface, to use the EKS Pod Identity credentials.

Pod Identity is a simpler method than IAM roles for service accounts, as this method doesn't use OIDC identity providers. Additionally, you can configure a role for Pod Identity once, and reuse it across clusters.

", "DeleteAccessEntry": "

Deletes an access entry.

Deleting an access entry of a type other than Standard can cause your cluster to function improperly. If you delete an access entry in error, you can recreate it.

", "DeleteAddon": "

Deletes an Amazon EKS add-on.

When you remove an add-on, it's deleted from the cluster. You can always manually start an add-on on the cluster using the Kubernetes API.

", @@ -63,7 +63,7 @@ "AMITypes": { "base": null, "refs": { - "CreateNodegroupRequest$amiType": "

The AMI type for your node group. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify amiType, or the node group deployment will fail. If your launch template uses a Windows custom AMI, then add eks:kube-proxy-windows to your Windows nodes rolearn in the aws-auth ConfigMap. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$amiType": "

The AMI type for your node group. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify amiType, or the node group deployment will fail. If your launch template uses a Windows custom AMI, then add eks:kube-proxy-windows to your Windows nodes rolearn in the aws-auth ConfigMap. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "Nodegroup$amiType": "

If the node group was deployed using a launch template with a custom AMI, then this is CUSTOM. For node groups that weren't deployed using a launch template, this is the AMI type that was specified in the node group configuration.

" } }, @@ -155,6 +155,31 @@ "AddonHealth$issues": "

An object representing the health issues for an add-on.

" } }, + "AddonPodIdentityAssociations": { + "base": "

A type of Pod Identity Association owned by an Amazon EKS Add-on.

Each EKS Pod Identity Association maps a role to a service account in a namespace in the cluster.

For more information, see Attach an IAM Role to an Amazon EKS add-on using Pod Identity in the EKS User Guide.

", + "refs": { + "AddonPodIdentityAssociationsList$member": null + } + }, + "AddonPodIdentityAssociationsList": { + "base": null, + "refs": { + "CreateAddonRequest$podIdentityAssociations": "

An array of Pod Identity Assocations to be created. Each EKS Pod Identity association maps a Kubernetes service account to an IAM Role.

For more information, see Attach an IAM Role to an Amazon EKS add-on using Pod Identity in the EKS User Guide.

", + "UpdateAddonRequest$podIdentityAssociations": "

An array of Pod Identity Assocations to be updated. Each EKS Pod Identity association maps a Kubernetes service account to an IAM Role. If this value is left blank, no change. If an empty array is provided, existing Pod Identity Assocations owned by the Addon are deleted.

For more information, see Attach an IAM Role to an Amazon EKS add-on using Pod Identity in the EKS User Guide.

" + } + }, + "AddonPodIdentityConfiguration": { + "base": "

Information about how to configure IAM for an Addon.

", + "refs": { + "AddonPodIdentityConfigurationList$member": null + } + }, + "AddonPodIdentityConfigurationList": { + "base": null, + "refs": { + "DescribeAddonConfigurationResponse$podIdentityConfiguration": "

The Kubernetes service account name used by the addon, and any suggested IAM policies. Use this information to create an IAM Role for the Addon.

" + } + }, "AddonStatus": { "base": null, "refs": { @@ -251,6 +276,7 @@ "base": null, "refs": { "AddonVersionInfo$requiresConfiguration": "

Whether the add-on requires configuration.

", + "AddonVersionInfo$requiresIamPermissions": "

Indicates if the Addon requires IAM Permissions to operate, such as networking permissions.

", "Compatibility$defaultVersion": "

The supported default version.

", "CreateEksAnywhereSubscriptionRequest$autoRenew": "

A boolean indicating whether the subscription auto renews at the end of the term.

", "DeleteAddonRequest$preserve": "

Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.

", @@ -274,7 +300,7 @@ "BoxedInteger": { "base": null, "refs": { - "CreateNodegroupRequest$diskSize": "

The root device disk size (in GiB) for your node group instances. The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for Windows. If you specify launchTemplate, then don't specify diskSize, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$diskSize": "

The root device disk size (in GiB) for your node group instances. The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for Windows. If you specify launchTemplate, then don't specify diskSize, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "Nodegroup$diskSize": "

If the node group wasn't deployed with a launch template, then this is the disk size in the node group configuration. If the node group was deployed with a launch template, then this is null.

" } }, @@ -339,13 +365,13 @@ } }, "ClusterHealth": { - "base": "

An object representing the health of your local Amazon EKS cluster on an Amazon Web Services Outpost. You can't use this API with an Amazon EKS cluster on the Amazon Web Services cloud.

", + "base": "

An object representing the health of your Amazon EKS cluster.

", "refs": { - "Cluster$health": "

An object representing the health of your local Amazon EKS cluster on an Amazon Web Services Outpost. This object isn't available for clusters on the Amazon Web Services cloud.

" + "Cluster$health": "

An object representing the health of your Amazon EKS cluster.

" } }, "ClusterIssue": { - "base": "

An issue with your local Amazon EKS cluster on an Amazon Web Services Outpost. You can't use this API with an Amazon EKS cluster on the Amazon Web Services cloud.

", + "base": "

An issue with your Amazon EKS cluster.

", "refs": { "ClusterIssueList$member": null } @@ -359,7 +385,7 @@ "ClusterIssueList": { "base": null, "refs": { - "ClusterHealth$issues": "

An object representing the health issues of your local Amazon EKS cluster on an Amazon Web Services Outpost.

" + "ClusterHealth$issues": "

An object representing the health issues of your Amazon EKS cluster.

" } }, "ClusterName": { @@ -1008,9 +1034,9 @@ } }, "LaunchTemplateSpecification": { - "base": "

An object representing a node group launch template specification. The launch template can't include SubnetId , IamInstanceProfile , RequestSpotInstances , HibernationOptions , or TerminateInstances , or the node group deployment or update will fail. For more information about launch templates, see CreateLaunchTemplate in the Amazon EC2 API Reference. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

You must specify either the launch template ID or the launch template name in the request, but not both.

", + "base": "

An object representing a node group launch template specification. The launch template can't include SubnetId , IamInstanceProfile , RequestSpotInstances , HibernationOptions , or TerminateInstances , or the node group deployment or update will fail. For more information about launch templates, see CreateLaunchTemplate in the Amazon EC2 API Reference. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

You must specify either the launch template ID or the launch template name in the request, but not both.

", "refs": { - "CreateNodegroupRequest$launchTemplate": "

An object representing a node group's launch template specification. If specified, then do not specify instanceTypes, diskSize, or remoteAccess and make sure that the launch template meets the requirements in launchTemplateSpecification.

", + "CreateNodegroupRequest$launchTemplate": "

An object representing a node group's launch template specification. When using this object, don't directly specify instanceTypes, diskSize, or remoteAccess. Make sure that the launch template meets the requirements in launchTemplateSpecification. Also refer to Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "Nodegroup$launchTemplate": "

If a launch template was used to create the node group, then this is the launch template that was used.

", "UpdateNodegroupVersionRequest$launchTemplate": "

An object representing a node group's launch template specification. You can only update a node group using a launch template if the node group was originally deployed with a launch template.

" } @@ -1385,7 +1411,7 @@ "RemoteAccessConfig": { "base": "

An object representing the remote access configuration for the managed node group.

", "refs": { - "CreateNodegroupRequest$remoteAccess": "

The remote access configuration to use with your node group. For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify launchTemplate, then don't specify remoteAccess, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$remoteAccess": "

The remote access configuration to use with your node group. For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify launchTemplate, then don't specify remoteAccess, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "Nodegroup$remoteAccess": "

If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is null.

" } }, @@ -1458,6 +1484,9 @@ "AddonInfo$publisher": "

The publisher of the add-on.

", "AddonInfo$owner": "

The owner of the add-on.

", "AddonIssue$message": "

A message that provides details about the issue and what might cause it.

", + "AddonPodIdentityAssociations$serviceAccount": "

The name of a Kubernetes Service Account.

", + "AddonPodIdentityAssociations$roleArn": "

The ARN of an IAM Role.

", + "AddonPodIdentityConfiguration$serviceAccount": "

The Kubernetes Service Account name used by the addon.

", "AddonVersionInfo$addonVersion": "

The version of the add-on.

", "AssociateAccessPolicyRequest$clusterName": "

The name of your cluster.

", "AssociateAccessPolicyRequest$principalArn": "

The Amazon Resource Name (ARN) of the IAM user or role for the AccessEntry that you're associating the access policy to.

", @@ -1514,10 +1543,10 @@ "CreateFargateProfileRequest$clientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "CreateNodegroupRequest$clusterName": "

The name of your cluster.

", "CreateNodegroupRequest$nodegroupName": "

The unique name to give your node group.

", - "CreateNodegroupRequest$nodeRole": "

The Amazon Resource Name (ARN) of the IAM role to associate with your node group. The Amazon EKS worker node kubelet daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched. For more information, see Amazon EKS node IAM role in the Amazon EKS User Guide . If you specify launchTemplate, then don't specify IamInstanceProfile in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$nodeRole": "

The Amazon Resource Name (ARN) of the IAM role to associate with your node group. The Amazon EKS worker node kubelet daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched. For more information, see Amazon EKS node IAM role in the Amazon EKS User Guide . If you specify launchTemplate, then don't specify IamInstanceProfile in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "CreateNodegroupRequest$clientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "CreateNodegroupRequest$version": "

The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", - "CreateNodegroupRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use with your node group. By default, the latest available AMI version for the node group's current Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$version": "

The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use with your node group. By default, the latest available AMI version for the node group's current Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "CreatePodIdentityAssociationRequest$clusterName": "

The name of the cluster to create the association in.

", "CreatePodIdentityAssociationRequest$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", "CreatePodIdentityAssociationRequest$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", @@ -1691,11 +1720,13 @@ "PodIdentityAssociation$roleArn": "

The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.

", "PodIdentityAssociation$associationArn": "

The Amazon Resource Name (ARN) of the association.

", "PodIdentityAssociation$associationId": "

The ID of the association.

", + "PodIdentityAssociation$ownerArn": "

If defined, the Pod Identity Association is owned by an Amazon EKS Addon.

", "PodIdentityAssociationSummary$clusterName": "

The name of the cluster that the association is in.

", "PodIdentityAssociationSummary$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", "PodIdentityAssociationSummary$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", "PodIdentityAssociationSummary$associationArn": "

The Amazon Resource Name (ARN) of the association.

", "PodIdentityAssociationSummary$associationId": "

The ID of the association.

", + "PodIdentityAssociationSummary$ownerArn": "

If defined, the Pod Identity Association is owned by an Amazon EKS Addon.

", "Provider$keyArn": "

Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric and created in the same Amazon Web Services Region as the cluster. If the KMS key was created in a different account, the IAM principal must have access to the KMS key. For more information, see Allowing users in other accounts to use a KMS key in the Key Management Service Developer Guide.

", "RegisterClusterRequest$clientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "RemoteAccessConfig$ec2SshKey": "

The Amazon EC2 SSH key name that provides access for SSH communication with the nodes in the managed node group. For more information, see Amazon EC2 key pairs and Linux instances in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For Windows, an Amazon EC2 SSH key is used to obtain the RDP password. For more information, see Amazon EC2 key pairs and Windows instances in the Amazon Elastic Compute Cloud User Guide for Windows Instances.

", @@ -1747,8 +1778,8 @@ "UpdateNodegroupConfigRequest$clientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "UpdateNodegroupVersionRequest$clusterName": "

The name of your cluster.

", "UpdateNodegroupVersionRequest$nodegroupName": "

The name of the managed node group to update.

", - "UpdateNodegroupVersionRequest$version": "

The Kubernetes version to update to. If no version is specified, then the Kubernetes version of the node group does not change. You can specify the Kubernetes version of the cluster to update the node group to the latest AMI version of the cluster's Kubernetes version. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, or the node group update will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", - "UpdateNodegroupVersionRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use for the update. By default, the latest available AMI version for the node group's Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group update will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "UpdateNodegroupVersionRequest$version": "

The Kubernetes version to update to. If no version is specified, then the Kubernetes version of the node group does not change. You can specify the Kubernetes version of the cluster to update the node group to the latest AMI version of the cluster's Kubernetes version. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, or the node group update will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", + "UpdateNodegroupVersionRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use for the update. By default, the latest available AMI version for the node group's Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group update will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "UpdateNodegroupVersionRequest$clientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "UpdateParam$value": "

The value of the keys submitted as part of an update request.

", "UpdatePodIdentityAssociationRequest$clusterName": "

The name of the cluster that you want to update the association in.

", @@ -1765,14 +1796,16 @@ "refs": { "AccessEntry$kubernetesGroups": "

A name that you've specified in a Kubernetes RoleBinding or ClusterRoleBinding object so that Kubernetes authorizes the principalARN access to cluster objects.

", "AccessScope$namespaces": "

A Kubernetes namespace that an access policy is scoped to. A value is required if you specified namespace for Type.

", + "Addon$podIdentityAssociations": "

An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster.

For more information, see Attach an IAM Role to an Amazon EKS add-on using Pod Identity in the EKS User Guide.

", "AddonIssue$resourceIds": "

The resource IDs of the issue.

", + "AddonPodIdentityConfiguration$recommendedManagedPolicies": "

A suggested IAM Policy for the addon.

", "AddonVersionInfo$architecture": "

The architectures that the version supports.

", "ClusterIssue$resourceIds": "

The resource IDs that the issue relates to.

", "Compatibility$platformVersions": "

The supported compute platform.

", "CreateAccessEntryRequest$kubernetesGroups": "

The value for name that you've specified for kind: Group as a subject in a Kubernetes RoleBinding or ClusterRoleBinding object. Amazon EKS doesn't confirm that the value for name exists in any bindings on your cluster. You can specify one or more names.

Kubernetes authorizes the principalArn of the access entry to access any cluster objects that you've specified in a Kubernetes Role or ClusterRole object that is also specified in a binding's roleRef. For more information about creating Kubernetes RoleBinding, ClusterRoleBinding, Role, or ClusterRole objects, see Using RBAC Authorization in the Kubernetes documentation.

If you want Amazon EKS to authorize the principalArn (instead of, or in addition to Kubernetes authorizing the principalArn), you can associate one or more access policies to the access entry using AssociateAccessPolicy. If you associate any access policies, the principalARN has all permissions assigned in the associated access policies and all permissions in any Kubernetes Role or ClusterRole objects that the group names are bound to.

", "CreateFargateProfileRequest$subnets": "

The IDs of subnets to launch a Pod into. A Pod running on Fargate isn't assigned a public IP address, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.

", - "CreateNodegroupRequest$subnets": "

The subnets to use for the Auto Scaling group that is created for your node group. If you specify launchTemplate, then don't specify SubnetId in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", - "CreateNodegroupRequest$instanceTypes": "

Specify the instance types for a node group. If you specify a GPU instance type, make sure to also specify an applicable GPU AMI type with the amiType parameter. If you specify launchTemplate, then you can specify zero or one instance type in your launch template or you can specify 0-20 instance types for instanceTypes. If however, you specify an instance type in your launch template and specify any instanceTypes, the node group deployment will fail. If you don't specify an instance type in a launch template or for instanceTypes, then t3.medium is used, by default. If you specify Spot for capacityType, then we recommend specifying multiple values for instanceTypes. For more information, see Managed node group capacity types and Launch template support in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$subnets": "

The subnets to use for the Auto Scaling group that is created for your node group. If you specify launchTemplate, then don't specify SubnetId in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", + "CreateNodegroupRequest$instanceTypes": "

Specify the instance types for a node group. If you specify a GPU instance type, make sure to also specify an applicable GPU AMI type with the amiType parameter. If you specify launchTemplate, then you can specify zero or one instance type in your launch template or you can specify 0-20 instance types for instanceTypes. If however, you specify an instance type in your launch template and specify any instanceTypes, the node group deployment will fail. If you don't specify an instance type in a launch template or for instanceTypes, then t3.medium is used, by default. If you specify Spot for capacityType, then we recommend specifying multiple values for instanceTypes. For more information, see Managed node group capacity types and Customizing managed nodes with launch templates in the Amazon EKS User Guide.

", "DescribeAddonVersionsRequest$types": "

The type of the add-on. For valid types, don't specify a value for this property.

", "DescribeAddonVersionsRequest$publishers": "

The publisher of the add-on. For valid publishers, don't specify a value for this property.

", "DescribeAddonVersionsRequest$owners": "

The owner of the add-on. For valid owners, don't specify a value for this property.

", diff --git a/models/apis/iottwinmaker/2021-11-29/api-2.json b/models/apis/iottwinmaker/2021-11-29/api-2.json index c4938967c7d..431e33eb23d 100644 --- a/models/apis/iottwinmaker/2021-11-29/api-2.json +++ b/models/apis/iottwinmaker/2021-11-29/api-2.json @@ -2,8 +2,10 @@ "metadata": { "apiVersion": "2021-11-29", "endpointPrefix": "iottwinmaker", - "jsonVersion": "1.1", "protocol": "rest-json", + "protocols": [ + "rest-json" + ], "serviceFullName": "AWS IoT TwinMaker", "serviceId": "IoTTwinMaker", "signatureVersion": "v4", @@ -4414,7 +4416,8 @@ "enum": [ "UPDATE", "DELETE", - "CREATE" + "CREATE", + "RESET_VALUE" ], "type": "string" }, diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 20db4ac34e3..3d3288dc20b 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -27852,32 +27852,8 @@ }, "ram" : { "endpoints" : { - "fips-us-iso-east-1" : { - "credentialScope" : { - "region" : "us-iso-east-1" - }, - "deprecated" : true, - "hostname" : "ram-fips.us-iso-east-1.c2s.ic.gov" - }, - "fips-us-iso-west-1" : { - "credentialScope" : { - "region" : "us-iso-west-1" - }, - "deprecated" : true, - "hostname" : "ram-fips.us-iso-west-1.c2s.ic.gov" - }, - "us-iso-east-1" : { - "variants" : [ { - "hostname" : "ram-fips.us-iso-east-1.c2s.ic.gov", - "tags" : [ "fips" ] - } ] - }, - "us-iso-west-1" : { - "variants" : [ { - "hostname" : "ram-fips.us-iso-west-1.c2s.ic.gov", - "tags" : [ "fips" ] - } ] - } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "rbin" : { @@ -28618,19 +28594,7 @@ }, "ram" : { "endpoints" : { - "fips-us-isob-east-1" : { - "credentialScope" : { - "region" : "us-isob-east-1" - }, - "deprecated" : true, - "hostname" : "ram-fips.us-isob-east-1.sc2s.sgov.gov" - }, - "us-isob-east-1" : { - "variants" : [ { - "hostname" : "ram-fips.us-isob-east-1.sc2s.sgov.gov", - "tags" : [ "fips" ] - } ] - } + "us-isob-east-1" : { } } }, "rbin" : { diff --git a/service/amplify/api.go b/service/amplify/api.go index b69a8a553e6..52f69b98ef0 100644 --- a/service/amplify/api.go +++ b/service/amplify/api.go @@ -151,9 +151,9 @@ func (c *Amplify) CreateBackendEnvironmentRequest(input *CreateBackendEnvironmen // // This API is available only to Amplify Gen 1 applications where the backend // is created using Amplify Studio or the Amplify command line interface (CLI). -// This API isn’t available to applications created using the Amplify Gen -// 2 public preview. When you deploy an application with Amplify Gen 2, you -// provision the app's backend infrastructure using Typescript code. +// This API isn’t available to Amplify Gen 2 applications. When you deploy +// an application with Amplify Gen 2, you provision the app's backend infrastructure +// using Typescript code. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -714,10 +714,10 @@ func (c *Amplify) DeleteBackendEnvironmentRequest(input *DeleteBackendEnvironmen // Deletes a backend environment for an Amplify app. // // This API is available only to Amplify Gen 1 applications where the backend -// was created using Amplify Studio or the Amplify command line interface (CLI). -// This API isn’t available to applications created using the Amplify Gen -// 2 public preview. When you deploy an application with Amplify Gen 2, you -// provision the app's backend infrastructure using Typescript code. +// is created using Amplify Studio or the Amplify command line interface (CLI). +// This API isn’t available to Amplify Gen 2 applications. When you deploy +// an application with Amplify Gen 2, you provision the app's backend infrastructure +// using Typescript code. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1443,10 +1443,10 @@ func (c *Amplify) GetBackendEnvironmentRequest(input *GetBackendEnvironmentInput // Returns a backend environment for an Amplify app. // // This API is available only to Amplify Gen 1 applications where the backend -// was created using Amplify Studio or the Amplify command line interface (CLI). -// This API isn’t available to applications created using the Amplify Gen -// 2 public preview. When you deploy an application with Amplify Gen 2, you -// provision the app's backend infrastructure using Typescript code. +// is created using Amplify Studio or the Amplify command line interface (CLI). +// This API isn’t available to Amplify Gen 2 applications. When you deploy +// an application with Amplify Gen 2, you provision the app's backend infrastructure +// using Typescript code. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2125,10 +2125,10 @@ func (c *Amplify) ListBackendEnvironmentsRequest(input *ListBackendEnvironmentsI // Lists the backend environments for an Amplify app. // // This API is available only to Amplify Gen 1 applications where the backend -// was created using Amplify Studio or the Amplify command line interface (CLI). -// This API isn’t available to applications created using the Amplify Gen -// 2 public preview. When you deploy an application with Amplify Gen 2, you -// provision the app's backend infrastructure using Typescript code. +// is created using Amplify Studio or the Amplify command line interface (CLI). +// This API isn’t available to Amplify Gen 2 applications. When you deploy +// an application with Amplify Gen 2, you provision the app's backend infrastructure +// using Typescript code. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4058,7 +4058,11 @@ func (s *AutoBranchCreationConfig) SetStage(v string) *AutoBranchCreationConfig return s } -// Describes the backend properties associated with an Amplify Branch. +// Describes the backend associated with an Amplify Branch. +// +// This property is available to Amplify Gen 2 apps only. When you deploy an +// application with Amplify Gen 2, you provision the app's backend infrastructure +// using Typescript code. type Backend struct { _ struct{} `type:"structure"` @@ -4103,7 +4107,9 @@ func (s *Backend) SetStackArn(v string) *Backend { return s } -// Describes the backend environment for an Amplify app. +// Describes the backend environment associated with a Branch of a Gen 1 Amplify +// app. Amplify Gen 1 applications are created using Amplify Studio or the Amplify +// command line interface (CLI). type BackendEnvironment struct { _ struct{} `type:"structure"` @@ -4267,11 +4273,19 @@ type Branch struct { // A list of custom resources that are linked to this branch. AssociatedResources []*string `locationName:"associatedResources" type:"list"` - // Describes the backend properties associated with an Amplify Branch. + // Describes the backend associated with an Amplify Branch. + // + // This property is available to Amplify Gen 2 apps only. When you deploy an + // application with Amplify Gen 2, you provision the app's backend infrastructure + // using Typescript code. Backend *Backend `locationName:"backend" type:"structure"` // The Amazon Resource Name (ARN) for a backend environment that is part of // an Amplify app. + // + // This property is available to Amplify Gen 1 apps only. When you deploy an + // application with Amplify Gen 2, you provision the app's backend infrastructure + // using Typescript code. BackendEnvironmentArn *string `locationName:"backendEnvironmentArn" type:"string"` // The basic authorization credentials for a branch of an Amplify app. You must @@ -5174,10 +5188,17 @@ type CreateBranchInput struct { // The backend for a Branch of an Amplify app. Use for a backend created from // an CloudFormation stack. + // + // This field is available to Amplify Gen 2 apps only. When you deploy an application + // with Amplify Gen 2, you provision the app's backend infrastructure using + // Typescript code. Backend *Backend `locationName:"backend" type:"structure"` // The Amazon Resource Name (ARN) for a backend environment that is part of - // an Amplify app. + // a Gen 1 Amplify app. + // + // This field is available to Amplify Gen 1 apps only where the backend is created + // using Amplify Studio or the Amplify command line interface (CLI). BackendEnvironmentArn *string `locationName:"backendEnvironmentArn" type:"string"` // The basic authorization credentials for the branch. You must base64-encode @@ -10222,10 +10243,17 @@ type UpdateBranchInput struct { // The backend for a Branch of an Amplify app. Use for a backend created from // an CloudFormation stack. + // + // This field is available to Amplify Gen 2 apps only. When you deploy an application + // with Amplify Gen 2, you provision the app's backend infrastructure using + // Typescript code. Backend *Backend `locationName:"backend" type:"structure"` // The Amazon Resource Name (ARN) for a backend environment that is part of - // an Amplify app. + // a Gen 1 Amplify app. + // + // This field is available to Amplify Gen 1 apps only where the backend is created + // using Amplify Studio or the Amplify command line interface (CLI). BackendEnvironmentArn *string `locationName:"backendEnvironmentArn" type:"string"` // The basic authorization credentials for the branch. You must base64-encode diff --git a/service/batch/api.go b/service/batch/api.go index 4788e4d3ddb..585864c5fef 100644 --- a/service/batch/api.go +++ b/service/batch/api.go @@ -1418,6 +1418,92 @@ func (c *Batch) DescribeSchedulingPoliciesWithContext(ctx aws.Context, input *De return out, req.Send() } +const opGetJobQueueSnapshot = "GetJobQueueSnapshot" + +// GetJobQueueSnapshotRequest generates a "aws/request.Request" representing the +// client's request for the GetJobQueueSnapshot operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetJobQueueSnapshot for more information on using the GetJobQueueSnapshot +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetJobQueueSnapshotRequest method. +// req, resp := client.GetJobQueueSnapshotRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/GetJobQueueSnapshot +func (c *Batch) GetJobQueueSnapshotRequest(input *GetJobQueueSnapshotInput) (req *request.Request, output *GetJobQueueSnapshotOutput) { + op := &request.Operation{ + Name: opGetJobQueueSnapshot, + HTTPMethod: "POST", + HTTPPath: "/v1/getjobqueuesnapshot", + } + + if input == nil { + input = &GetJobQueueSnapshotInput{} + } + + output = &GetJobQueueSnapshotOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetJobQueueSnapshot API operation for AWS Batch. +// +// Provides a list of the first 100 RUNNABLE jobs associated to a single job +// queue. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Batch's +// API operation GetJobQueueSnapshot for usage and error information. +// +// Returned Error Types: +// +// - ClientException +// These errors are usually caused by a client action. One example cause is +// using an action or resource on behalf of a user that doesn't have permissions +// to use the action or resource. Another cause is specifying an identifier +// that's not valid. +// +// - ServerException +// These errors are usually caused by a server issue. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/GetJobQueueSnapshot +func (c *Batch) GetJobQueueSnapshot(input *GetJobQueueSnapshotInput) (*GetJobQueueSnapshotOutput, error) { + req, out := c.GetJobQueueSnapshotRequest(input) + return out, req.Send() +} + +// GetJobQueueSnapshotWithContext is the same as GetJobQueueSnapshot with the addition of +// the ability to pass a context and additional request options. +// +// See GetJobQueueSnapshot for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Batch) GetJobQueueSnapshotWithContext(ctx aws.Context, input *GetJobQueueSnapshotInput, opts ...request.Option) (*GetJobQueueSnapshotOutput, error) { + req, out := c.GetJobQueueSnapshotRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListJobs = "ListJobs" // ListJobsRequest generates a "aws/request.Request" representing the @@ -9462,6 +9548,175 @@ func (s *FargatePlatformConfiguration) SetPlatformVersion(v string) *FargatePlat return s } +// Contains a list of the first 100 RUNNABLE jobs associated to a single job +// queue. +type FrontOfQueueDetail struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Names (ARNs) of the first 100 RUNNABLE jobs in a named + // job queue. For first-in-first-out (FIFO) job queues, jobs are ordered based + // on their submission time. For fair share scheduling (FSS) job queues, jobs + // are ordered based on their job priority and share usage. + Jobs []*FrontOfQueueJobSummary `locationName:"jobs" type:"list"` + + // The Unix timestamp (in milliseconds) for when each of the first 100 RUNNABLE + // jobs were last updated. + LastUpdatedAt *int64 `locationName:"lastUpdatedAt" type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrontOfQueueDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrontOfQueueDetail) GoString() string { + return s.String() +} + +// SetJobs sets the Jobs field's value. +func (s *FrontOfQueueDetail) SetJobs(v []*FrontOfQueueJobSummary) *FrontOfQueueDetail { + s.Jobs = v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *FrontOfQueueDetail) SetLastUpdatedAt(v int64) *FrontOfQueueDetail { + s.LastUpdatedAt = &v + return s +} + +// An object that represents summary details for the first 100 RUNNABLE jobs +// in a job queue. +type FrontOfQueueJobSummary struct { + _ struct{} `type:"structure"` + + // The Unix timestamp (in milliseconds) for when the job transitioned to its + // current position in the job queue. + EarliestTimeAtPosition *int64 `locationName:"earliestTimeAtPosition" type:"long"` + + // The ARN for a job in a named job queue. + JobArn *string `locationName:"jobArn" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrontOfQueueJobSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FrontOfQueueJobSummary) GoString() string { + return s.String() +} + +// SetEarliestTimeAtPosition sets the EarliestTimeAtPosition field's value. +func (s *FrontOfQueueJobSummary) SetEarliestTimeAtPosition(v int64) *FrontOfQueueJobSummary { + s.EarliestTimeAtPosition = &v + return s +} + +// SetJobArn sets the JobArn field's value. +func (s *FrontOfQueueJobSummary) SetJobArn(v string) *FrontOfQueueJobSummary { + s.JobArn = &v + return s +} + +type GetJobQueueSnapshotInput struct { + _ struct{} `type:"structure"` + + // The job queue’s name or full queue Amazon Resource Name (ARN). + // + // JobQueue is a required field + JobQueue *string `locationName:"jobQueue" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobQueueSnapshotInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobQueueSnapshotInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetJobQueueSnapshotInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetJobQueueSnapshotInput"} + if s.JobQueue == nil { + invalidParams.Add(request.NewErrParamRequired("JobQueue")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetJobQueue sets the JobQueue field's value. +func (s *GetJobQueueSnapshotInput) SetJobQueue(v string) *GetJobQueueSnapshotInput { + s.JobQueue = &v + return s +} + +type GetJobQueueSnapshotOutput struct { + _ struct{} `type:"structure"` + + // The list of the first 100 RUNNABLE jobs in each job queue. For first-in-first-out + // (FIFO) job queues, jobs are ordered based on their submission time. For fair + // share scheduling (FSS) job queues, jobs are ordered based on their job priority + // and share usage. + FrontOfQueue *FrontOfQueueDetail `locationName:"frontOfQueue" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobQueueSnapshotOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobQueueSnapshotOutput) GoString() string { + return s.String() +} + +// SetFrontOfQueue sets the FrontOfQueue field's value. +func (s *GetJobQueueSnapshotOutput) SetFrontOfQueue(v *FrontOfQueueDetail) *GetJobQueueSnapshotOutput { + s.FrontOfQueue = v + return s +} + // Determine whether your data volume persists on the host container instance // and where it's stored. If this parameter is empty, then the Docker daemon // assigns a host path for your data volume. However, the data isn't guaranteed @@ -10957,12 +11212,22 @@ type ListJobsInput struct { // are returned. JobStatus *string `locationName:"jobStatus" type:"string" enum:"JobStatus"` - // The maximum number of results returned by ListJobs in paginated output. When - // this parameter is used, ListJobs only returns maxResults results in a single - // page and a nextToken response element. The remaining results of the initial - // request can be seen by sending another ListJobs request with the returned - // nextToken value. This value can be between 1 and 100. If this parameter isn't - // used, then ListJobs returns up to 100 results and a nextToken value if applicable. + // The maximum number of results returned by ListJobs in a paginated output. + // When this parameter is used, ListJobs returns up to maxResults results in + // a single page and a nextToken response element, if applicable. The remaining + // results of the initial request can be seen by sending another ListJobs request + // with the returned nextToken value. + // + // The following outlines key parameters and limitations: + // + // * The minimum value is 1. + // + // * When --job-status is used, Batch returns up to 1000 values. + // + // * When --filters is used, Batch returns up to 100 values. + // + // * If neither parameter is used, then ListJobs returns up to 1000 results + // (jobs that are in the RUNNING status) and a nextToken value, if applicable. MaxResults *int64 `locationName:"maxResults" type:"integer"` // The job ID for a multi-node parallel job. Specifying a multi-node parallel diff --git a/service/batch/batchiface/interface.go b/service/batch/batchiface/interface.go index 67c7f88a58b..bf1fec19165 100644 --- a/service/batch/batchiface/interface.go +++ b/service/batch/batchiface/interface.go @@ -121,6 +121,10 @@ type BatchAPI interface { DescribeSchedulingPoliciesWithContext(aws.Context, *batch.DescribeSchedulingPoliciesInput, ...request.Option) (*batch.DescribeSchedulingPoliciesOutput, error) DescribeSchedulingPoliciesRequest(*batch.DescribeSchedulingPoliciesInput) (*request.Request, *batch.DescribeSchedulingPoliciesOutput) + GetJobQueueSnapshot(*batch.GetJobQueueSnapshotInput) (*batch.GetJobQueueSnapshotOutput, error) + GetJobQueueSnapshotWithContext(aws.Context, *batch.GetJobQueueSnapshotInput, ...request.Option) (*batch.GetJobQueueSnapshotOutput, error) + GetJobQueueSnapshotRequest(*batch.GetJobQueueSnapshotInput) (*request.Request, *batch.GetJobQueueSnapshotOutput) + ListJobs(*batch.ListJobsInput) (*batch.ListJobsOutput, error) ListJobsWithContext(aws.Context, *batch.ListJobsInput, ...request.Option) (*batch.ListJobsOutput, error) ListJobsRequest(*batch.ListJobsInput) (*request.Request, *batch.ListJobsOutput) diff --git a/service/eks/api.go b/service/eks/api.go index f520331d2f0..870352d11ad 100644 --- a/service/eks/api.go +++ b/service/eks/api.go @@ -621,7 +621,7 @@ func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Requ // In most cases, it takes several minutes to create a cluster. After you create // an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate // with the API server and launch nodes into your cluster. For more information, -// see Managing Cluster Authentication (https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html) +// see Allowing users to access your cluster (https://docs.aws.amazon.com/eks/latest/userguide/cluster-auth.html) // and Launching Amazon EKS nodes (https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html) // in the Amazon EKS User Guide. // @@ -965,8 +965,8 @@ func (c *EKS) CreateNodegroupRequest(input *CreateNodegroupInput) (req *request. // Kubernetes version for the cluster. All node groups are created with the // latest AMI release version for the respective minor Kubernetes version of // the cluster, unless you deploy a custom AMI using a launch template. For -// more information about using launch templates, see Launch template support -// (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html). +// more information about using launch templates, see Customizing managed nodes +// with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html). // // An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and // associated Amazon EC2 instances that are managed by Amazon Web Services for @@ -6746,6 +6746,14 @@ type Addon struct { // The owner of the add-on. Owner *string `locationName:"owner" type:"string"` + // An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity + // association maps a role to a service account in a namespace in the cluster. + // + // For more information, see Attach an IAM Role to an Amazon EKS add-on using + // Pod Identity (https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html) + // in the EKS User Guide. + PodIdentityAssociations []*string `locationName:"podIdentityAssociations" type:"list"` + // The publisher of the add-on. Publisher *string `locationName:"publisher" type:"string"` @@ -6840,6 +6848,12 @@ func (s *Addon) SetOwner(v string) *Addon { return s } +// SetPodIdentityAssociations sets the PodIdentityAssociations field's value. +func (s *Addon) SetPodIdentityAssociations(v []*string) *Addon { + s.PodIdentityAssociations = v + return s +} + // SetPublisher sets the Publisher field's value. func (s *Addon) SetPublisher(v string) *Addon { s.Publisher = &v @@ -7024,6 +7038,115 @@ func (s *AddonIssue) SetResourceIds(v []*string) *AddonIssue { return s } +// A type of Pod Identity Association owned by an Amazon EKS Add-on. +// +// Each EKS Pod Identity Association maps a role to a service account in a namespace +// in the cluster. +// +// For more information, see Attach an IAM Role to an Amazon EKS add-on using +// Pod Identity (https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html) +// in the EKS User Guide. +type AddonPodIdentityAssociations struct { + _ struct{} `type:"structure"` + + // The ARN of an IAM Role. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The name of a Kubernetes Service Account. + // + // ServiceAccount is a required field + ServiceAccount *string `locationName:"serviceAccount" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddonPodIdentityAssociations) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddonPodIdentityAssociations) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddonPodIdentityAssociations) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddonPodIdentityAssociations"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.ServiceAccount == nil { + invalidParams.Add(request.NewErrParamRequired("ServiceAccount")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRoleArn sets the RoleArn field's value. +func (s *AddonPodIdentityAssociations) SetRoleArn(v string) *AddonPodIdentityAssociations { + s.RoleArn = &v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *AddonPodIdentityAssociations) SetServiceAccount(v string) *AddonPodIdentityAssociations { + s.ServiceAccount = &v + return s +} + +// Information about how to configure IAM for an Addon. +type AddonPodIdentityConfiguration struct { + _ struct{} `type:"structure"` + + // A suggested IAM Policy for the addon. + RecommendedManagedPolicies []*string `locationName:"recommendedManagedPolicies" type:"list"` + + // The Kubernetes Service Account name used by the addon. + ServiceAccount *string `locationName:"serviceAccount" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddonPodIdentityConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddonPodIdentityConfiguration) GoString() string { + return s.String() +} + +// SetRecommendedManagedPolicies sets the RecommendedManagedPolicies field's value. +func (s *AddonPodIdentityConfiguration) SetRecommendedManagedPolicies(v []*string) *AddonPodIdentityConfiguration { + s.RecommendedManagedPolicies = v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *AddonPodIdentityConfiguration) SetServiceAccount(v string) *AddonPodIdentityConfiguration { + s.ServiceAccount = &v + return s +} + // Information about an add-on version. type AddonVersionInfo struct { _ struct{} `type:"structure"` @@ -7039,6 +7162,10 @@ type AddonVersionInfo struct { // Whether the add-on requires configuration. RequiresConfiguration *bool `locationName:"requiresConfiguration" type:"boolean"` + + // Indicates if the Addon requires IAM Permissions to operate, such as networking + // permissions. + RequiresIamPermissions *bool `locationName:"requiresIamPermissions" type:"boolean"` } // String returns the string representation. @@ -7083,6 +7210,12 @@ func (s *AddonVersionInfo) SetRequiresConfiguration(v bool) *AddonVersionInfo { return s } +// SetRequiresIamPermissions sets the RequiresIamPermissions field's value. +func (s *AddonVersionInfo) SetRequiresIamPermissions(v bool) *AddonVersionInfo { + s.RequiresIamPermissions = &v + return s +} + type AssociateAccessPolicyInput struct { _ struct{} `type:"structure"` @@ -7821,9 +7954,7 @@ type Cluster struct { // The endpoint for your Kubernetes API server. Endpoint *string `locationName:"endpoint" type:"string"` - // An object representing the health of your local Amazon EKS cluster on an - // Amazon Web Services Outpost. This object isn't available for clusters on - // the Amazon Web Services cloud. + // An object representing the health of your Amazon EKS cluster. Health *ClusterHealth `locationName:"health" type:"structure"` // The ID of your local Amazon EKS cluster on an Amazon Web Services Outpost. @@ -8024,14 +8155,11 @@ func (s *Cluster) SetVersion(v string) *Cluster { return s } -// An object representing the health of your local Amazon EKS cluster on an -// Amazon Web Services Outpost. You can't use this API with an Amazon EKS cluster -// on the Amazon Web Services cloud. +// An object representing the health of your Amazon EKS cluster. type ClusterHealth struct { _ struct{} `type:"structure"` - // An object representing the health issues of your local Amazon EKS cluster - // on an Amazon Web Services Outpost. + // An object representing the health issues of your Amazon EKS cluster. Issues []*ClusterIssue `locationName:"issues" type:"list"` } @@ -8059,9 +8187,7 @@ func (s *ClusterHealth) SetIssues(v []*ClusterIssue) *ClusterHealth { return s } -// An issue with your local Amazon EKS cluster on an Amazon Web Services Outpost. -// You can't use this API with an Amazon EKS cluster on the Amazon Web Services -// cloud. +// An issue with your Amazon EKS cluster. type ClusterIssue struct { _ struct{} `type:"structure"` @@ -8630,6 +8756,14 @@ type CreateAddonInput struct { // that you provide are validated against the schema returned by DescribeAddonConfiguration. ConfigurationValues *string `locationName:"configurationValues" type:"string"` + // An array of Pod Identity Assocations to be created. Each EKS Pod Identity + // association maps a Kubernetes service account to an IAM Role. + // + // For more information, see Attach an IAM Role to an Amazon EKS add-on using + // Pod Identity (https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html) + // in the EKS User Guide. + PodIdentityAssociations []*AddonPodIdentityAssociations `locationName:"podIdentityAssociations" type:"list"` + // How to resolve field value conflicts for an Amazon EKS add-on. Conflicts // are handled based on the value you choose: // @@ -8708,6 +8842,16 @@ func (s *CreateAddonInput) Validate() error { if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } + if s.PodIdentityAssociations != nil { + for i, v := range s.PodIdentityAssociations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PodIdentityAssociations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -8745,6 +8889,12 @@ func (s *CreateAddonInput) SetConfigurationValues(v string) *CreateAddonInput { return s } +// SetPodIdentityAssociations sets the PodIdentityAssociations field's value. +func (s *CreateAddonInput) SetPodIdentityAssociations(v []*AddonPodIdentityAssociations) *CreateAddonInput { + s.PodIdentityAssociations = v + return s +} + // SetResolveConflicts sets the ResolveConflicts field's value. func (s *CreateAddonInput) SetResolveConflicts(v string) *CreateAddonInput { s.ResolveConflicts = &v @@ -9336,7 +9486,7 @@ type CreateNodegroupInput struct { // group deployment will fail. If your launch template uses a Windows custom // AMI, then add eks:kube-proxy-windows to your Windows nodes rolearn in the // aws-auth ConfigMap. For more information about using launch templates with - // Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // Amazon EKS, see Customizing managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"` @@ -9356,7 +9506,8 @@ type CreateNodegroupInput struct { // disk size is 20 GiB for Linux and Bottlerocket. The default disk size is // 50 GiB for Windows. If you specify launchTemplate, then don't specify diskSize, // or the node group deployment will fail. For more information about using - // launch templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // launch templates with Amazon EKS, see Customizing managed nodes with launch + // templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. DiskSize *int64 `locationName:"diskSize" type:"integer"` @@ -9370,7 +9521,7 @@ type CreateNodegroupInput struct { // then t3.medium is used, by default. If you specify Spot for capacityType, // then we recommend specifying multiple values for instanceTypes. For more // information, see Managed node group capacity types (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - // and Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // and Customizing managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. InstanceTypes []*string `locationName:"instanceTypes" type:"list"` @@ -9378,9 +9529,11 @@ type CreateNodegroupInput struct { // created. Labels map[string]*string `locationName:"labels" type:"map"` - // An object representing a node group's launch template specification. If specified, - // then do not specify instanceTypes, diskSize, or remoteAccess and make sure - // that the launch template meets the requirements in launchTemplateSpecification. + // An object representing a node group's launch template specification. When + // using this object, don't directly specify instanceTypes, diskSize, or remoteAccess. + // Make sure that the launch template meets the requirements in launchTemplateSpecification. + // Also refer to Customizing managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // in the Amazon EKS User Guide. LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"` // The Amazon Resource Name (ARN) of the IAM role to associate with your node @@ -9393,8 +9546,8 @@ type CreateNodegroupInput struct { // in the Amazon EKS User Guide . If you specify launchTemplate, then don't // specify IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) // in your launch template, or the node group deployment will fail. For more - // information about using launch templates with Amazon EKS, see Launch template - // support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. // // NodeRole is a required field @@ -9416,16 +9569,16 @@ type CreateNodegroupInput struct { // // If you specify launchTemplate, and your launch template uses a custom AMI, // then don't specify releaseVersion, or the node group deployment will fail. - // For more information about using launch templates with Amazon EKS, see Launch - // template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // For more information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. ReleaseVersion *string `locationName:"releaseVersion" type:"string"` // The remote access configuration to use with your node group. For Linux, the // protocol is SSH. For Windows, the protocol is RDP. If you specify launchTemplate, // then don't specify remoteAccess, or the node group deployment will fail. - // For more information about using launch templates with Amazon EKS, see Launch - // template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // For more information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"` @@ -9436,8 +9589,8 @@ type CreateNodegroupInput struct { // The subnets to use for the Auto Scaling group that is created for your node // group. If you specify launchTemplate, then don't specify SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) // in your launch template, or the node group deployment will fail. For more - // information about using launch templates with Amazon EKS, see Launch template - // support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. // // Subnets is a required field @@ -9459,8 +9612,8 @@ type CreateNodegroupInput struct { // version of the cluster is used, and this is the only accepted specified value. // If you specify launchTemplate, and your launch template uses a custom AMI, // then don't specify version, or the node group deployment will fail. For more - // information about using launch templates with Amazon EKS, see Launch template - // support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. Version *string `locationName:"version" type:"string"` } @@ -10819,6 +10972,10 @@ type DescribeAddonConfigurationOutput struct { // A JSON schema that's used to validate the configuration values you provide // when an add-on is created or updated. ConfigurationSchema *string `locationName:"configurationSchema" type:"string"` + + // The Kubernetes service account name used by the addon, and any suggested + // IAM policies. Use this information to create an IAM Role for the Addon. + PodIdentityConfiguration []*AddonPodIdentityConfiguration `locationName:"podIdentityConfiguration" type:"list"` } // String returns the string representation. @@ -10857,6 +11014,12 @@ func (s *DescribeAddonConfigurationOutput) SetConfigurationSchema(v string) *Des return s } +// SetPodIdentityConfiguration sets the PodIdentityConfiguration field's value. +func (s *DescribeAddonConfigurationOutput) SetPodIdentityConfiguration(v []*AddonPodIdentityConfiguration) *DescribeAddonConfigurationOutput { + s.PodIdentityConfiguration = v + return s +} + type DescribeAddonInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -13494,7 +13657,8 @@ func (s *KubernetesNetworkConfigResponse) SetServiceIpv6Cidr(v string) *Kubernet // or the node group deployment or update will fail. For more information about // launch templates, see CreateLaunchTemplate (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) // in the Amazon EC2 API Reference. For more information about using launch -// templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) +// templates with Amazon EKS, see Customizing managed nodes with launch templates +// (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. // // You must specify either the launch template ID or the launch template name @@ -16392,6 +16556,9 @@ type PodIdentityAssociation struct { // in this namespace. Namespace *string `locationName:"namespace" type:"string"` + // If defined, the Pod Identity Association is owned by an Amazon EKS Addon. + OwnerArn *string `locationName:"ownerArn" type:"string"` + // The Amazon Resource Name (ARN) of the IAM role to associate with the service // account. The EKS Pod Identity agent manages credentials to assume this role // for applications in the containers in the pods that use this service account. @@ -16484,6 +16651,12 @@ func (s *PodIdentityAssociation) SetNamespace(v string) *PodIdentityAssociation return s } +// SetOwnerArn sets the OwnerArn field's value. +func (s *PodIdentityAssociation) SetOwnerArn(v string) *PodIdentityAssociation { + s.OwnerArn = &v + return s +} + // SetRoleArn sets the RoleArn field's value. func (s *PodIdentityAssociation) SetRoleArn(v string) *PodIdentityAssociation { s.RoleArn = &v @@ -16531,6 +16704,9 @@ type PodIdentityAssociationSummary struct { // in this namespace. Namespace *string `locationName:"namespace" type:"string"` + // If defined, the Pod Identity Association is owned by an Amazon EKS Addon. + OwnerArn *string `locationName:"ownerArn" type:"string"` + // The name of the Kubernetes service account inside the cluster to associate // the IAM credentials with. ServiceAccount *string `locationName:"serviceAccount" type:"string"` @@ -16578,6 +16754,12 @@ func (s *PodIdentityAssociationSummary) SetNamespace(v string) *PodIdentityAssoc return s } +// SetOwnerArn sets the OwnerArn field's value. +func (s *PodIdentityAssociationSummary) SetOwnerArn(v string) *PodIdentityAssociationSummary { + s.OwnerArn = &v + return s +} + // SetServiceAccount sets the ServiceAccount field's value. func (s *PodIdentityAssociationSummary) SetServiceAccount(v string) *PodIdentityAssociationSummary { s.ServiceAccount = &v @@ -17841,6 +18023,16 @@ type UpdateAddonInput struct { // that you provide are validated against the schema returned by DescribeAddonConfiguration. ConfigurationValues *string `locationName:"configurationValues" type:"string"` + // An array of Pod Identity Assocations to be updated. Each EKS Pod Identity + // association maps a Kubernetes service account to an IAM Role. If this value + // is left blank, no change. If an empty array is provided, existing Pod Identity + // Assocations owned by the Addon are deleted. + // + // For more information, see Attach an IAM Role to an Amazon EKS add-on using + // Pod Identity (https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html) + // in the EKS User Guide. + PodIdentityAssociations []*AddonPodIdentityAssociations `locationName:"podIdentityAssociations" type:"list"` + // How to resolve field value conflicts for an Amazon EKS add-on if you've changed // a value from the Amazon EKS default value. Conflicts are handled based on // the option you choose: @@ -17905,6 +18097,16 @@ func (s *UpdateAddonInput) Validate() error { if s.ServiceAccountRoleArn != nil && len(*s.ServiceAccountRoleArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("ServiceAccountRoleArn", 1)) } + if s.PodIdentityAssociations != nil { + for i, v := range s.PodIdentityAssociations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PodIdentityAssociations", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -17942,6 +18144,12 @@ func (s *UpdateAddonInput) SetConfigurationValues(v string) *UpdateAddonInput { return s } +// SetPodIdentityAssociations sets the PodIdentityAssociations field's value. +func (s *UpdateAddonInput) SetPodIdentityAssociations(v []*AddonPodIdentityAssociations) *UpdateAddonInput { + s.PodIdentityAssociations = v + return s +} + // SetResolveConflicts sets the ResolveConflicts field's value. func (s *UpdateAddonInput) SetResolveConflicts(v string) *UpdateAddonInput { s.ResolveConflicts = &v @@ -18557,8 +18765,8 @@ type UpdateNodegroupVersionInput struct { // // If you specify launchTemplate, and your launch template uses a custom AMI, // then don't specify releaseVersion, or the node group update will fail. For - // more information about using launch templates with Amazon EKS, see Launch - // template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // more information about using launch templates with Amazon EKS, see Customizing + // managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. ReleaseVersion *string `locationName:"releaseVersion" type:"string"` @@ -18568,7 +18776,8 @@ type UpdateNodegroupVersionInput struct { // AMI version of the cluster's Kubernetes version. If you specify launchTemplate, // and your launch template uses a custom AMI, then don't specify version, or // the node group update will fail. For more information about using launch - // templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) + // templates with Amazon EKS, see Customizing managed nodes with launch templates + // (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) // in the Amazon EKS User Guide. Version *string `locationName:"version" type:"string"` } @@ -19215,6 +19424,12 @@ const ( // AddonIssueCodeK8sResourceNotFound is a AddonIssueCode enum value AddonIssueCodeK8sResourceNotFound = "K8sResourceNotFound" + + // AddonIssueCodeAddonSubscriptionNeeded is a AddonIssueCode enum value + AddonIssueCodeAddonSubscriptionNeeded = "AddonSubscriptionNeeded" + + // AddonIssueCodeAddonPermissionFailure is a AddonIssueCode enum value + AddonIssueCodeAddonPermissionFailure = "AddonPermissionFailure" ) // AddonIssueCode_Values returns all elements of the AddonIssueCode enum @@ -19228,6 +19443,8 @@ func AddonIssueCode_Values() []string { AddonIssueCodeAdmissionRequestDenied, AddonIssueCodeUnsupportedAddonModification, AddonIssueCodeK8sResourceNotFound, + AddonIssueCodeAddonSubscriptionNeeded, + AddonIssueCodeAddonPermissionFailure, } } @@ -20032,6 +20249,9 @@ const ( // UpdateParamTypeAuthenticationMode is a UpdateParamType enum value UpdateParamTypeAuthenticationMode = "AuthenticationMode" + + // UpdateParamTypePodIdentityAssociations is a UpdateParamType enum value + UpdateParamTypePodIdentityAssociations = "PodIdentityAssociations" ) // UpdateParamType_Values returns all elements of the UpdateParamType enum @@ -20064,6 +20284,7 @@ func UpdateParamType_Values() []string { UpdateParamTypeSecurityGroups, UpdateParamTypeSubnets, UpdateParamTypeAuthenticationMode, + UpdateParamTypePodIdentityAssociations, } } diff --git a/service/iottwinmaker/api.go b/service/iottwinmaker/api.go index 4fb3e35352b..c2e0a3dd4f5 100644 --- a/service/iottwinmaker/api.go +++ b/service/iottwinmaker/api.go @@ -16117,6 +16117,9 @@ const ( // PropertyUpdateTypeCreate is a PropertyUpdateType enum value PropertyUpdateTypeCreate = "CREATE" + + // PropertyUpdateTypeResetValue is a PropertyUpdateType enum value + PropertyUpdateTypeResetValue = "RESET_VALUE" ) // PropertyUpdateType_Values returns all elements of the PropertyUpdateType enum @@ -16125,6 +16128,7 @@ func PropertyUpdateType_Values() []string { PropertyUpdateTypeUpdate, PropertyUpdateTypeDelete, PropertyUpdateTypeCreate, + PropertyUpdateTypeResetValue, } }