From ab32314d133ec3e48a6e6cea06578ec676bb995b Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Fri, 4 Nov 2022 12:27:14 -0700 Subject: [PATCH] Release v1.44.131 (2022-11-04) (#4614) Release v1.44.131 (2022-11-04) === ### Service Client Updates * `service/ec2`: Updates service API and documentation * This release adds API support for the recipient of an AMI account share to remove shared AMI launch permissions. * `service/emr-containers`: Updates service API, documentation, and paginators * `service/logs`: Updates service documentation * Doc-only update for bug fixes and support of export to buckets encrypted with SSE-KMS --- CHANGELOG.md | 10 + aws/endpoints/defaults.go | 82 +- aws/version.go | 2 +- models/apis/ec2/2016-11-15/api-2.json | 26 + models/apis/ec2/2016-11-15/docs-2.json | 16 +- .../apis/ec2/2016-11-15/endpoint-tests-1.json | 286 +-- .../apis/emr-containers/2020-10-01/api-2.json | 287 ++- .../emr-containers/2020-10-01/docs-2.json | 191 +- .../2020-10-01/endpoint-rule-set-1.json | 315 +++ .../2020-10-01/endpoint-tests-1.json | 1031 +++++++++ .../2020-10-01/paginators-1.json | 6 + models/apis/logs/2014-03-28/docs-2.json | 14 +- models/endpoints/endpoints.json | 51 +- service/cloudwatchlogs/api.go | 36 +- service/ec2/api.go | 168 +- service/ec2/ec2iface/interface.go | 4 + service/emrcontainers/api.go | 1886 ++++++++++++++--- .../emrcontainersiface/interface.go | 19 + 18 files changed, 4018 insertions(+), 412 deletions(-) create mode 100644 models/apis/emr-containers/2020-10-01/endpoint-rule-set-1.json create mode 100644 models/apis/emr-containers/2020-10-01/endpoint-tests-1.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ddfba15c88..53c5bd1ee86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +Release v1.44.131 (2022-11-04) +=== + +### Service Client Updates +* `service/ec2`: Updates service API and documentation + * This release adds API support for the recipient of an AMI account share to remove shared AMI launch permissions. +* `service/emr-containers`: Updates service API, documentation, and paginators +* `service/logs`: Updates service documentation + * Doc-only update for bug fixes and support of export to buckets encrypted with SSE-KMS + Release v1.44.130 (2022-11-03) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index bdf2ad742dc..f3a6b9a3508 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -12159,6 +12159,7 @@ var awsPartition = partition{ CredentialScope: credentialScope{ Region: "us-east-1", }, + Deprecated: boxedTrue, }, endpointKey{ Region: "ingest-fips-us-east-2", @@ -12167,6 +12168,7 @@ var awsPartition = partition{ CredentialScope: credentialScope{ Region: "us-east-2", }, + Deprecated: boxedTrue, }, endpointKey{ Region: "ingest-fips-us-west-2", @@ -12175,6 +12177,61 @@ var awsPartition = partition{ CredentialScope: credentialScope{ Region: "us-west-2", }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-east-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "ingest.timestream-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-east-2", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "ingest.timestream-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-west-2", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "ingest-us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "ingest.timestream-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, }, endpointKey{ Region: "us-east-1", @@ -17360,7 +17417,21 @@ var awsPartition = partition{ }: endpoint{}, endpointKey{ Region: "ca-central-1", - }: endpoint{}, + }: endpoint{ + Hostname: "pinpoint.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "pinpoint-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -17370,6 +17441,15 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "pinpoint-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-east-1", }: endpoint{ diff --git a/aws/version.go b/aws/version.go index e2235518746..7e8dd0c96af 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.44.130" +const SDKVersion = "1.44.131" diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 6dadccd08d2..ae0fe4d156d 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -377,6 +377,15 @@ }, "input":{"shape":"CancelExportTaskRequest"} }, + "CancelImageLaunchPermission":{ + "name":"CancelImageLaunchPermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelImageLaunchPermissionRequest"}, + "output":{"shape":"CancelImageLaunchPermissionResult"} + }, "CancelImportTask":{ "name":"CancelImportTask", "http":{ @@ -7406,6 +7415,23 @@ } } }, + "CancelImageLaunchPermissionRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "ImageId":{"shape":"ImageId"}, + "DryRun":{"shape":"Boolean"} + } + }, + "CancelImageLaunchPermissionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "CancelImportTaskRequest":{ "type":"structure", "members":{ diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 229856c2c60..c492259e41d 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -43,6 +43,7 @@ "CancelCapacityReservationFleets": "

Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity Reservation Fleet, the following happens:

", "CancelConversionTask": "

Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception.

For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI.

", "CancelExportTask": "

Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.

", + "CancelImageLaunchPermission": "

Removes your Amazon Web Services account from the launch permissions for the specified AMI. For more information, see Cancel sharing an AMI with your Amazon Web Services account in the Amazon Elastic Compute Cloud User Guide.

", "CancelImportTask": "

Cancels an in-process import virtual machine or import snapshot task.

", "CancelReservedInstancesListing": "

Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace.

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

", "CancelSpotFleetRequests": "

Cancels the specified Spot Fleet requests.

After you cancel a Spot Fleet request, the Spot Fleet launches no new Spot Instances. You must specify whether the Spot Fleet should also terminate its Spot Instances. If you terminate the instances, the Spot Fleet request enters the cancelled_terminating state. Otherwise, the Spot Fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.

", @@ -1774,6 +1775,8 @@ "CancelCapacityReservationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CancelCapacityReservationResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", "CancelConversionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelImageLaunchPermissionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelImageLaunchPermissionResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", "CancelImportTaskRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CancelSpotFleetRequestsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CancelSpotFleetRequestsRequest$TerminateInstances": "

Indicates whether to terminate instances for a Spot Fleet request if it is canceled successfully.

", @@ -2718,6 +2721,16 @@ "refs": { } }, + "CancelImageLaunchPermissionRequest": { + "base": null, + "refs": { + } + }, + "CancelImageLaunchPermissionResult": { + "base": null, + "refs": { + } + }, "CancelImportTaskRequest": { "base": null, "refs": { @@ -9614,6 +9627,7 @@ "ImageId": { "base": null, "refs": { + "CancelImageLaunchPermissionRequest$ImageId": "

The ID of the AMI that was shared with your Amazon Web Services account.

", "CreateReplaceRootVolumeTaskRequest$ImageId": "

The ID of the AMI to use to restore the root volume. The specified AMI must have the same product code, billing information, architecture type, and virtualization type as that of the instance.

If you want to restore the replacement volume from a specific snapshot, or if you want to restore it to its launch state, omit this parameter.

", "CreateStoreImageTaskRequest$ImageId": "

The ID of the AMI.

", "DeregisterImageRequest$ImageId": "

The ID of the AMI.

", @@ -12787,7 +12801,7 @@ "EnableFastSnapshotRestoreSuccessItem$EnabledTime": "

The time at which fast snapshot restores entered the enabled state.

", "EnableFastSnapshotRestoreSuccessItem$DisablingTime": "

The time at which fast snapshot restores entered the disabling state.

", "EnableFastSnapshotRestoreSuccessItem$DisabledTime": "

The time at which fast snapshot restores entered the disabled state.

", - "EnableImageDeprecationRequest$DeprecateAt": "

The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

You can’t specify a date in the past. The upper limit for DeprecateAt is 10 years from now.

", + "EnableImageDeprecationRequest$DeprecateAt": "

The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

You can’t specify a date in the past. The upper limit for DeprecateAt is 10 years from now, except for public AMIs, where the upper limit is 2 years from the creation date.

", "FleetCapacityReservation$CreateDate": "

The date and time at which the Capacity Reservation was created.

", "FlowLog$CreationTime": "

The date and time the flow log was created.

", "GetIpamAddressHistoryRequest$StartTime": "

The start of the time period for which you are looking for history. If you omit this option, it will default to the value of EndTime.

", diff --git a/models/apis/ec2/2016-11-15/endpoint-tests-1.json b/models/apis/ec2/2016-11-15/endpoint-tests-1.json index 7f83e4d3ca8..96d0b0e0c6c 100644 --- a/models/apis/ec2/2016-11-15/endpoint-tests-1.json +++ b/models/apis/ec2/2016-11-15/endpoint-tests-1.json @@ -8,8 +8,8 @@ } }, "params": { - "Region": "ap-south-2", "UseFIPS": true, + "Region": "ap-south-2", "UseDualStack": true } }, @@ -21,8 +21,8 @@ } }, "params": { - "Region": "ap-south-2", "UseFIPS": true, + "Region": "ap-south-2", "UseDualStack": false } }, @@ -34,8 +34,8 @@ } }, "params": { - "Region": "ap-south-2", "UseFIPS": false, + "Region": "ap-south-2", "UseDualStack": true } }, @@ -47,8 +47,8 @@ } }, "params": { - "Region": "ap-south-2", "UseFIPS": false, + "Region": "ap-south-2", "UseDualStack": false } }, @@ -60,8 +60,8 @@ } }, "params": { - "Region": "ap-south-1", "UseFIPS": true, + "Region": "ap-south-1", "UseDualStack": true } }, @@ -73,8 +73,8 @@ } }, "params": { - "Region": "ap-south-1", "UseFIPS": true, + "Region": "ap-south-1", "UseDualStack": false } }, @@ -86,8 +86,8 @@ } }, "params": { - "Region": "ap-south-1", "UseFIPS": false, + "Region": "ap-south-1", "UseDualStack": true } }, @@ -99,8 +99,8 @@ } }, "params": { - "Region": "ap-south-1", "UseFIPS": false, + "Region": "ap-south-1", "UseDualStack": false } }, @@ -112,8 +112,8 @@ } }, "params": { - "Region": "eu-south-1", "UseFIPS": true, + "Region": "eu-south-1", "UseDualStack": true } }, @@ -125,8 +125,8 @@ } }, "params": { - "Region": "eu-south-1", "UseFIPS": true, + "Region": "eu-south-1", "UseDualStack": false } }, @@ -138,8 +138,8 @@ } }, "params": { - "Region": "eu-south-1", "UseFIPS": false, + "Region": "eu-south-1", "UseDualStack": true } }, @@ -151,8 +151,8 @@ } }, "params": { - "Region": "eu-south-1", "UseFIPS": false, + "Region": "eu-south-1", "UseDualStack": false } }, @@ -164,8 +164,8 @@ } }, "params": { - "Region": "eu-south-2", "UseFIPS": true, + "Region": "eu-south-2", "UseDualStack": true } }, @@ -177,8 +177,8 @@ } }, "params": { - "Region": "eu-south-2", "UseFIPS": true, + "Region": "eu-south-2", "UseDualStack": false } }, @@ -190,8 +190,8 @@ } }, "params": { - "Region": "eu-south-2", "UseFIPS": false, + "Region": "eu-south-2", "UseDualStack": true } }, @@ -203,8 +203,8 @@ } }, "params": { - "Region": "eu-south-2", "UseFIPS": false, + "Region": "eu-south-2", "UseDualStack": false } }, @@ -216,8 +216,8 @@ } }, "params": { - "Region": "us-gov-east-1", "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": true } }, @@ -229,8 +229,8 @@ } }, "params": { - "Region": "us-gov-east-1", "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": false } }, @@ -242,8 +242,8 @@ } }, "params": { - "Region": "us-gov-east-1", "UseFIPS": false, + "Region": "us-gov-east-1", "UseDualStack": true } }, @@ -255,8 +255,8 @@ } }, "params": { - "Region": "us-gov-east-1", "UseFIPS": false, + "Region": "us-gov-east-1", "UseDualStack": false } }, @@ -268,8 +268,8 @@ } }, "params": { - "Region": "me-central-1", "UseFIPS": true, + "Region": "me-central-1", "UseDualStack": true } }, @@ -281,8 +281,8 @@ } }, "params": { - "Region": "me-central-1", "UseFIPS": true, + "Region": "me-central-1", "UseDualStack": false } }, @@ -294,8 +294,8 @@ } }, "params": { - "Region": "me-central-1", "UseFIPS": false, + "Region": "me-central-1", "UseDualStack": true } }, @@ -307,8 +307,8 @@ } }, "params": { - "Region": "me-central-1", "UseFIPS": false, + "Region": "me-central-1", "UseDualStack": false } }, @@ -320,8 +320,8 @@ } }, "params": { - "Region": "ca-central-1", "UseFIPS": true, + "Region": "ca-central-1", "UseDualStack": true } }, @@ -333,8 +333,8 @@ } }, "params": { - "Region": "ca-central-1", "UseFIPS": true, + "Region": "ca-central-1", "UseDualStack": false } }, @@ -346,8 +346,8 @@ } }, "params": { - "Region": "ca-central-1", "UseFIPS": false, + "Region": "ca-central-1", "UseDualStack": true } }, @@ -359,8 +359,8 @@ } }, "params": { - "Region": "ca-central-1", "UseFIPS": false, + "Region": "ca-central-1", "UseDualStack": false } }, @@ -372,8 +372,8 @@ } }, "params": { - "Region": "eu-central-1", "UseFIPS": true, + "Region": "eu-central-1", "UseDualStack": true } }, @@ -385,8 +385,8 @@ } }, "params": { - "Region": "eu-central-1", "UseFIPS": true, + "Region": "eu-central-1", "UseDualStack": false } }, @@ -398,8 +398,8 @@ } }, "params": { - "Region": "eu-central-1", "UseFIPS": false, + "Region": "eu-central-1", "UseDualStack": true } }, @@ -411,8 +411,8 @@ } }, "params": { - "Region": "eu-central-1", "UseFIPS": false, + "Region": "eu-central-1", "UseDualStack": false } }, @@ -422,8 +422,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "Region": "us-iso-west-1", "UseFIPS": true, + "Region": "us-iso-west-1", "UseDualStack": true } }, @@ -435,8 +435,8 @@ } }, "params": { - "Region": "us-iso-west-1", "UseFIPS": true, + "Region": "us-iso-west-1", "UseDualStack": false } }, @@ -446,8 +446,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "Region": "us-iso-west-1", "UseFIPS": false, + "Region": "us-iso-west-1", "UseDualStack": true } }, @@ -459,8 +459,8 @@ } }, "params": { - "Region": "us-iso-west-1", "UseFIPS": false, + "Region": "us-iso-west-1", "UseDualStack": false } }, @@ -472,8 +472,8 @@ } }, "params": { - "Region": "eu-central-2", "UseFIPS": true, + "Region": "eu-central-2", "UseDualStack": true } }, @@ -485,8 +485,8 @@ } }, "params": { - "Region": "eu-central-2", "UseFIPS": true, + "Region": "eu-central-2", "UseDualStack": false } }, @@ -498,8 +498,8 @@ } }, "params": { - "Region": "eu-central-2", "UseFIPS": false, + "Region": "eu-central-2", "UseDualStack": true } }, @@ -511,8 +511,8 @@ } }, "params": { - "Region": "eu-central-2", "UseFIPS": false, + "Region": "eu-central-2", "UseDualStack": false } }, @@ -524,8 +524,8 @@ } }, "params": { - "Region": "us-west-1", "UseFIPS": true, + "Region": "us-west-1", "UseDualStack": true } }, @@ -537,8 +537,8 @@ } }, "params": { - "Region": "us-west-1", "UseFIPS": true, + "Region": "us-west-1", "UseDualStack": false } }, @@ -550,8 +550,8 @@ } }, "params": { - "Region": "us-west-1", "UseFIPS": false, + "Region": "us-west-1", "UseDualStack": true } }, @@ -563,8 +563,8 @@ } }, "params": { - "Region": "us-west-1", "UseFIPS": false, + "Region": "us-west-1", "UseDualStack": false } }, @@ -576,8 +576,8 @@ } }, "params": { - "Region": "us-west-2", "UseFIPS": true, + "Region": "us-west-2", "UseDualStack": true } }, @@ -589,8 +589,8 @@ } }, "params": { - "Region": "us-west-2", "UseFIPS": true, + "Region": "us-west-2", "UseDualStack": false } }, @@ -602,8 +602,8 @@ } }, "params": { - "Region": "us-west-2", "UseFIPS": false, + "Region": "us-west-2", "UseDualStack": true } }, @@ -615,8 +615,8 @@ } }, "params": { - "Region": "us-west-2", "UseFIPS": false, + "Region": "us-west-2", "UseDualStack": false } }, @@ -628,8 +628,8 @@ } }, "params": { - "Region": "af-south-1", "UseFIPS": true, + "Region": "af-south-1", "UseDualStack": true } }, @@ -641,8 +641,8 @@ } }, "params": { - "Region": "af-south-1", "UseFIPS": true, + "Region": "af-south-1", "UseDualStack": false } }, @@ -654,8 +654,8 @@ } }, "params": { - "Region": "af-south-1", "UseFIPS": false, + "Region": "af-south-1", "UseDualStack": true } }, @@ -667,8 +667,8 @@ } }, "params": { - "Region": "af-south-1", "UseFIPS": false, + "Region": "af-south-1", "UseDualStack": false } }, @@ -680,8 +680,8 @@ } }, "params": { - "Region": "eu-north-1", "UseFIPS": true, + "Region": "eu-north-1", "UseDualStack": true } }, @@ -693,8 +693,8 @@ } }, "params": { - "Region": "eu-north-1", "UseFIPS": true, + "Region": "eu-north-1", "UseDualStack": false } }, @@ -706,8 +706,8 @@ } }, "params": { - "Region": "eu-north-1", "UseFIPS": false, + "Region": "eu-north-1", "UseDualStack": true } }, @@ -719,8 +719,8 @@ } }, "params": { - "Region": "eu-north-1", "UseFIPS": false, + "Region": "eu-north-1", "UseDualStack": false } }, @@ -732,8 +732,8 @@ } }, "params": { - "Region": "eu-west-3", "UseFIPS": true, + "Region": "eu-west-3", "UseDualStack": true } }, @@ -745,8 +745,8 @@ } }, "params": { - "Region": "eu-west-3", "UseFIPS": true, + "Region": "eu-west-3", "UseDualStack": false } }, @@ -758,8 +758,8 @@ } }, "params": { - "Region": "eu-west-3", "UseFIPS": false, + "Region": "eu-west-3", "UseDualStack": true } }, @@ -771,8 +771,8 @@ } }, "params": { - "Region": "eu-west-3", "UseFIPS": false, + "Region": "eu-west-3", "UseDualStack": false } }, @@ -784,8 +784,8 @@ } }, "params": { - "Region": "eu-west-2", "UseFIPS": true, + "Region": "eu-west-2", "UseDualStack": true } }, @@ -797,8 +797,8 @@ } }, "params": { - "Region": "eu-west-2", "UseFIPS": true, + "Region": "eu-west-2", "UseDualStack": false } }, @@ -810,8 +810,8 @@ } }, "params": { - "Region": "eu-west-2", "UseFIPS": false, + "Region": "eu-west-2", "UseDualStack": true } }, @@ -823,8 +823,8 @@ } }, "params": { - "Region": "eu-west-2", "UseFIPS": false, + "Region": "eu-west-2", "UseDualStack": false } }, @@ -836,8 +836,8 @@ } }, "params": { - "Region": "eu-west-1", "UseFIPS": true, + "Region": "eu-west-1", "UseDualStack": true } }, @@ -849,8 +849,8 @@ } }, "params": { - "Region": "eu-west-1", "UseFIPS": true, + "Region": "eu-west-1", "UseDualStack": false } }, @@ -862,8 +862,8 @@ } }, "params": { - "Region": "eu-west-1", "UseFIPS": false, + "Region": "eu-west-1", "UseDualStack": true } }, @@ -875,8 +875,8 @@ } }, "params": { - "Region": "eu-west-1", "UseFIPS": false, + "Region": "eu-west-1", "UseDualStack": false } }, @@ -888,8 +888,8 @@ } }, "params": { - "Region": "ap-northeast-3", "UseFIPS": true, + "Region": "ap-northeast-3", "UseDualStack": true } }, @@ -901,8 +901,8 @@ } }, "params": { - "Region": "ap-northeast-3", "UseFIPS": true, + "Region": "ap-northeast-3", "UseDualStack": false } }, @@ -914,8 +914,8 @@ } }, "params": { - "Region": "ap-northeast-3", "UseFIPS": false, + "Region": "ap-northeast-3", "UseDualStack": true } }, @@ -927,8 +927,8 @@ } }, "params": { - "Region": "ap-northeast-3", "UseFIPS": false, + "Region": "ap-northeast-3", "UseDualStack": false } }, @@ -940,8 +940,8 @@ } }, "params": { - "Region": "ap-northeast-2", "UseFIPS": true, + "Region": "ap-northeast-2", "UseDualStack": true } }, @@ -953,8 +953,8 @@ } }, "params": { - "Region": "ap-northeast-2", "UseFIPS": true, + "Region": "ap-northeast-2", "UseDualStack": false } }, @@ -966,8 +966,8 @@ } }, "params": { - "Region": "ap-northeast-2", "UseFIPS": false, + "Region": "ap-northeast-2", "UseDualStack": true } }, @@ -979,8 +979,8 @@ } }, "params": { - "Region": "ap-northeast-2", "UseFIPS": false, + "Region": "ap-northeast-2", "UseDualStack": false } }, @@ -992,8 +992,8 @@ } }, "params": { - "Region": "ap-northeast-1", "UseFIPS": true, + "Region": "ap-northeast-1", "UseDualStack": true } }, @@ -1005,8 +1005,8 @@ } }, "params": { - "Region": "ap-northeast-1", "UseFIPS": true, + "Region": "ap-northeast-1", "UseDualStack": false } }, @@ -1018,8 +1018,8 @@ } }, "params": { - "Region": "ap-northeast-1", "UseFIPS": false, + "Region": "ap-northeast-1", "UseDualStack": true } }, @@ -1031,8 +1031,8 @@ } }, "params": { - "Region": "ap-northeast-1", "UseFIPS": false, + "Region": "ap-northeast-1", "UseDualStack": false } }, @@ -1044,8 +1044,8 @@ } }, "params": { - "Region": "me-south-1", "UseFIPS": true, + "Region": "me-south-1", "UseDualStack": true } }, @@ -1057,8 +1057,8 @@ } }, "params": { - "Region": "me-south-1", "UseFIPS": true, + "Region": "me-south-1", "UseDualStack": false } }, @@ -1070,8 +1070,8 @@ } }, "params": { - "Region": "me-south-1", "UseFIPS": false, + "Region": "me-south-1", "UseDualStack": true } }, @@ -1083,8 +1083,8 @@ } }, "params": { - "Region": "me-south-1", "UseFIPS": false, + "Region": "me-south-1", "UseDualStack": false } }, @@ -1096,8 +1096,8 @@ } }, "params": { - "Region": "sa-east-1", "UseFIPS": true, + "Region": "sa-east-1", "UseDualStack": true } }, @@ -1109,8 +1109,8 @@ } }, "params": { - "Region": "sa-east-1", "UseFIPS": true, + "Region": "sa-east-1", "UseDualStack": false } }, @@ -1122,8 +1122,8 @@ } }, "params": { - "Region": "sa-east-1", "UseFIPS": false, + "Region": "sa-east-1", "UseDualStack": true } }, @@ -1135,8 +1135,8 @@ } }, "params": { - "Region": "sa-east-1", "UseFIPS": false, + "Region": "sa-east-1", "UseDualStack": false } }, @@ -1148,8 +1148,8 @@ } }, "params": { - "Region": "ap-east-1", "UseFIPS": true, + "Region": "ap-east-1", "UseDualStack": true } }, @@ -1161,8 +1161,8 @@ } }, "params": { - "Region": "ap-east-1", "UseFIPS": true, + "Region": "ap-east-1", "UseDualStack": false } }, @@ -1174,8 +1174,8 @@ } }, "params": { - "Region": "ap-east-1", "UseFIPS": false, + "Region": "ap-east-1", "UseDualStack": true } }, @@ -1187,8 +1187,8 @@ } }, "params": { - "Region": "ap-east-1", "UseFIPS": false, + "Region": "ap-east-1", "UseDualStack": false } }, @@ -1200,8 +1200,8 @@ } }, "params": { - "Region": "cn-north-1", "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": true } }, @@ -1213,8 +1213,8 @@ } }, "params": { - "Region": "cn-north-1", "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": false } }, @@ -1226,8 +1226,8 @@ } }, "params": { - "Region": "cn-north-1", "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": true } }, @@ -1239,8 +1239,8 @@ } }, "params": { - "Region": "cn-north-1", "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": false } }, @@ -1252,8 +1252,8 @@ } }, "params": { - "Region": "ca-west-1", "UseFIPS": true, + "Region": "ca-west-1", "UseDualStack": true } }, @@ -1265,8 +1265,8 @@ } }, "params": { - "Region": "ca-west-1", "UseFIPS": true, + "Region": "ca-west-1", "UseDualStack": false } }, @@ -1278,8 +1278,8 @@ } }, "params": { - "Region": "ca-west-1", "UseFIPS": false, + "Region": "ca-west-1", "UseDualStack": true } }, @@ -1291,8 +1291,8 @@ } }, "params": { - "Region": "ca-west-1", "UseFIPS": false, + "Region": "ca-west-1", "UseDualStack": false } }, @@ -1304,8 +1304,8 @@ } }, "params": { - "Region": "us-gov-west-1", "UseFIPS": true, + "Region": "us-gov-west-1", "UseDualStack": true } }, @@ -1317,8 +1317,8 @@ } }, "params": { - "Region": "us-gov-west-1", "UseFIPS": true, + "Region": "us-gov-west-1", "UseDualStack": false } }, @@ -1330,8 +1330,8 @@ } }, "params": { - "Region": "us-gov-west-1", "UseFIPS": false, + "Region": "us-gov-west-1", "UseDualStack": true } }, @@ -1343,8 +1343,8 @@ } }, "params": { - "Region": "us-gov-west-1", "UseFIPS": false, + "Region": "us-gov-west-1", "UseDualStack": false } }, @@ -1356,8 +1356,8 @@ } }, "params": { - "Region": "ap-southeast-1", "UseFIPS": true, + "Region": "ap-southeast-1", "UseDualStack": true } }, @@ -1369,8 +1369,8 @@ } }, "params": { - "Region": "ap-southeast-1", "UseFIPS": true, + "Region": "ap-southeast-1", "UseDualStack": false } }, @@ -1382,8 +1382,8 @@ } }, "params": { - "Region": "ap-southeast-1", "UseFIPS": false, + "Region": "ap-southeast-1", "UseDualStack": true } }, @@ -1395,8 +1395,8 @@ } }, "params": { - "Region": "ap-southeast-1", "UseFIPS": false, + "Region": "ap-southeast-1", "UseDualStack": false } }, @@ -1408,8 +1408,8 @@ } }, "params": { - "Region": "ap-southeast-2", "UseFIPS": true, + "Region": "ap-southeast-2", "UseDualStack": true } }, @@ -1421,8 +1421,8 @@ } }, "params": { - "Region": "ap-southeast-2", "UseFIPS": true, + "Region": "ap-southeast-2", "UseDualStack": false } }, @@ -1434,8 +1434,8 @@ } }, "params": { - "Region": "ap-southeast-2", "UseFIPS": false, + "Region": "ap-southeast-2", "UseDualStack": true } }, @@ -1447,8 +1447,8 @@ } }, "params": { - "Region": "ap-southeast-2", "UseFIPS": false, + "Region": "ap-southeast-2", "UseDualStack": false } }, @@ -1458,8 +1458,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "Region": "us-iso-east-1", "UseFIPS": true, + "Region": "us-iso-east-1", "UseDualStack": true } }, @@ -1471,8 +1471,8 @@ } }, "params": { - "Region": "us-iso-east-1", "UseFIPS": true, + "Region": "us-iso-east-1", "UseDualStack": false } }, @@ -1482,8 +1482,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "Region": "us-iso-east-1", "UseFIPS": false, + "Region": "us-iso-east-1", "UseDualStack": true } }, @@ -1495,8 +1495,8 @@ } }, "params": { - "Region": "us-iso-east-1", "UseFIPS": false, + "Region": "us-iso-east-1", "UseDualStack": false } }, @@ -1508,8 +1508,8 @@ } }, "params": { - "Region": "ap-southeast-3", "UseFIPS": true, + "Region": "ap-southeast-3", "UseDualStack": true } }, @@ -1521,8 +1521,8 @@ } }, "params": { - "Region": "ap-southeast-3", "UseFIPS": true, + "Region": "ap-southeast-3", "UseDualStack": false } }, @@ -1534,8 +1534,8 @@ } }, "params": { - "Region": "ap-southeast-3", "UseFIPS": false, + "Region": "ap-southeast-3", "UseDualStack": true } }, @@ -1547,8 +1547,8 @@ } }, "params": { - "Region": "ap-southeast-3", "UseFIPS": false, + "Region": "ap-southeast-3", "UseDualStack": false } }, @@ -1560,8 +1560,8 @@ } }, "params": { - "Region": "ap-southeast-4", "UseFIPS": true, + "Region": "ap-southeast-4", "UseDualStack": true } }, @@ -1573,8 +1573,8 @@ } }, "params": { - "Region": "ap-southeast-4", "UseFIPS": true, + "Region": "ap-southeast-4", "UseDualStack": false } }, @@ -1586,8 +1586,8 @@ } }, "params": { - "Region": "ap-southeast-4", "UseFIPS": false, + "Region": "ap-southeast-4", "UseDualStack": true } }, @@ -1599,8 +1599,8 @@ } }, "params": { - "Region": "ap-southeast-4", "UseFIPS": false, + "Region": "ap-southeast-4", "UseDualStack": false } }, @@ -1612,8 +1612,8 @@ } }, "params": { - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": true } }, @@ -1625,8 +1625,8 @@ } }, "params": { - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": false } }, @@ -1638,8 +1638,8 @@ } }, "params": { - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": true } }, @@ -1651,8 +1651,8 @@ } }, "params": { - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false } }, @@ -1664,8 +1664,8 @@ } }, "params": { - "Region": "us-east-2", "UseFIPS": true, + "Region": "us-east-2", "UseDualStack": true } }, @@ -1677,8 +1677,8 @@ } }, "params": { - "Region": "us-east-2", "UseFIPS": true, + "Region": "us-east-2", "UseDualStack": false } }, @@ -1690,8 +1690,8 @@ } }, "params": { - "Region": "us-east-2", "UseFIPS": false, + "Region": "us-east-2", "UseDualStack": true } }, @@ -1703,8 +1703,8 @@ } }, "params": { - "Region": "us-east-2", "UseFIPS": false, + "Region": "us-east-2", "UseDualStack": false } }, @@ -1716,8 +1716,8 @@ } }, "params": { - "Region": "cn-northwest-1", "UseFIPS": true, + "Region": "cn-northwest-1", "UseDualStack": true } }, @@ -1729,8 +1729,8 @@ } }, "params": { - "Region": "cn-northwest-1", "UseFIPS": true, + "Region": "cn-northwest-1", "UseDualStack": false } }, @@ -1742,8 +1742,8 @@ } }, "params": { - "Region": "cn-northwest-1", "UseFIPS": false, + "Region": "cn-northwest-1", "UseDualStack": true } }, @@ -1755,8 +1755,8 @@ } }, "params": { - "Region": "cn-northwest-1", "UseFIPS": false, + "Region": "cn-northwest-1", "UseDualStack": false } }, @@ -1766,8 +1766,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "Region": "us-isob-east-1", "UseFIPS": true, + "Region": "us-isob-east-1", "UseDualStack": true } }, @@ -1779,8 +1779,8 @@ } }, "params": { - "Region": "us-isob-east-1", "UseFIPS": true, + "Region": "us-isob-east-1", "UseDualStack": false } }, @@ -1790,8 +1790,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "Region": "us-isob-east-1", "UseFIPS": false, + "Region": "us-isob-east-1", "UseDualStack": true } }, @@ -1803,8 +1803,8 @@ } }, "params": { - "Region": "us-isob-east-1", "UseFIPS": false, + "Region": "us-isob-east-1", "UseDualStack": false } }, @@ -1816,8 +1816,8 @@ } }, "params": { - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1828,8 +1828,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1840,8 +1840,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": true, "Endpoint": "https://example.com" } diff --git a/models/apis/emr-containers/2020-10-01/api-2.json b/models/apis/emr-containers/2020-10-01/api-2.json index f9566c9f643..cc21a0e83c0 100644 --- a/models/apis/emr-containers/2020-10-01/api-2.json +++ b/models/apis/emr-containers/2020-10-01/api-2.json @@ -25,6 +25,20 @@ {"shape":"InternalServerException"} ] }, + "CreateJobTemplate":{ + "name":"CreateJobTemplate", + "http":{ + "method":"POST", + "requestUri":"/jobtemplates" + }, + "input":{"shape":"CreateJobTemplateRequest"}, + "output":{"shape":"CreateJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, "CreateManagedEndpoint":{ "name":"CreateManagedEndpoint", "http":{ @@ -53,6 +67,19 @@ {"shape":"InternalServerException"} ] }, + "DeleteJobTemplate":{ + "name":"DeleteJobTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/jobtemplates/{templateId}" + }, + "input":{"shape":"DeleteJobTemplateRequest"}, + "output":{"shape":"DeleteJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, "DeleteManagedEndpoint":{ "name":"DeleteManagedEndpoint", "http":{ @@ -93,6 +120,20 @@ {"shape":"InternalServerException"} ] }, + "DescribeJobTemplate":{ + "name":"DescribeJobTemplate", + "http":{ + "method":"GET", + "requestUri":"/jobtemplates/{templateId}" + }, + "input":{"shape":"DescribeJobTemplateRequest"}, + "output":{"shape":"DescribeJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeManagedEndpoint":{ "name":"DescribeManagedEndpoint", "http":{ @@ -134,6 +175,19 @@ {"shape":"InternalServerException"} ] }, + "ListJobTemplates":{ + "name":"ListJobTemplates", + "http":{ + "method":"GET", + "requestUri":"/jobtemplates" + }, + "input":{"shape":"ListJobTemplatesRequest"}, + "output":{"shape":"ListJobTemplatesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, "ListManagedEndpoints":{ "name":"ListManagedEndpoints", "http":{ @@ -326,6 +380,33 @@ "type":"string", "enum":["EKS"] }, + "CreateJobTemplateRequest":{ + "type":"structure", + "required":[ + "name", + "clientToken", + "jobTemplateData" + ], + "members":{ + "name":{"shape":"ResourceNameString"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "jobTemplateData":{"shape":"JobTemplateData"}, + "tags":{"shape":"TagMap"}, + "kmsKeyArn":{"shape":"KmsKeyArn"} + } + }, + "CreateJobTemplateResponse":{ + "type":"structure", + "members":{ + "id":{"shape":"ResourceIdString"}, + "name":{"shape":"ResourceNameString"}, + "arn":{"shape":"JobTemplateArn"}, + "createdAt":{"shape":"Date"} + } + }, "CreateManagedEndpointRequest":{ "type":"structure", "required":[ @@ -397,6 +478,23 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "DeleteJobTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ResourceIdString", + "location":"uri", + "locationName":"templateId" + } + } + }, + "DeleteJobTemplateResponse":{ + "type":"structure", + "members":{ + "id":{"shape":"ResourceIdString"} + } + }, "DeleteManagedEndpointRequest":{ "type":"structure", "required":[ @@ -465,6 +563,23 @@ "jobRun":{"shape":"JobRun"} } }, + "DescribeJobTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ResourceIdString", + "location":"uri", + "locationName":"templateId" + } + } + }, + "DescribeJobTemplateResponse":{ + "type":"structure", + "members":{ + "jobTemplate":{"shape":"JobTemplate"} + } + }, "DescribeManagedEndpointRequest":{ "type":"structure", "required":[ @@ -673,6 +788,53 @@ "type":"list", "member":{"shape":"JobRun"} }, + "JobTemplate":{ + "type":"structure", + "required":["jobTemplateData"], + "members":{ + "name":{"shape":"ResourceNameString"}, + "id":{"shape":"ResourceIdString"}, + "arn":{"shape":"JobTemplateArn"}, + "createdAt":{"shape":"Date"}, + "createdBy":{"shape":"RequestIdentityUserArn"}, + "tags":{"shape":"TagMap"}, + "jobTemplateData":{"shape":"JobTemplateData"}, + "kmsKeyArn":{"shape":"KmsKeyArn"}, + "decryptionError":{"shape":"String2048"} + } + }, + "JobTemplateArn":{ + "type":"string", + "max":1024, + "min":60, + "pattern":"^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/jobtemplates\\/[0-9a-zA-Z]+$" + }, + "JobTemplateData":{ + "type":"structure", + "required":[ + "executionRoleArn", + "releaseLabel", + "jobDriver" + ], + "members":{ + "executionRoleArn":{"shape":"ParametricIAMRoleArn"}, + "releaseLabel":{"shape":"ParametricReleaseLabel"}, + "configurationOverrides":{"shape":"ParametricConfigurationOverrides"}, + "jobDriver":{"shape":"JobDriver"}, + "parameterConfiguration":{"shape":"TemplateParameterConfigurationMap"}, + "jobTags":{"shape":"TagMap"} + } + }, + "JobTemplates":{ + "type":"list", + "member":{"shape":"JobTemplate"} + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":3, + "pattern":"^(arn:(aws[a-zA-Z0-9-]*):kms:([a-zA-Z0-9]+-?)+:(\\d{12})?:key\\/[(0-9a-zA-Z)-?]+|\\$\\{[a-zA-Z]\\w*\\})$" + }, "KubernetesNamespace":{ "type":"string", "max":63, @@ -727,6 +889,38 @@ "nextToken":{"shape":"NextToken"} } }, + "ListJobTemplatesRequest":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"Date", + "location":"querystring", + "locationName":"createdAfter" + }, + "createdBefore":{ + "shape":"Date", + "location":"querystring", + "locationName":"createdBefore" + }, + "maxResults":{ + "shape":"JavaInteger", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListJobTemplatesResponse":{ + "type":"structure", + "members":{ + "templates":{"shape":"JobTemplates"}, + "nextToken":{"shape":"NextToken"} + } + }, "ListManagedEndpointsRequest":{ "type":"structure", "required":["virtualClusterId"], @@ -859,6 +1053,46 @@ "min":1, "pattern":".*\\S.*" }, + "ParametricCloudWatchMonitoringConfiguration":{ + "type":"structure", + "members":{ + "logGroupName":{"shape":"TemplateParameter"}, + "logStreamNamePrefix":{"shape":"String256"} + } + }, + "ParametricConfigurationOverrides":{ + "type":"structure", + "members":{ + "applicationConfiguration":{"shape":"ConfigurationList"}, + "monitoringConfiguration":{"shape":"ParametricMonitoringConfiguration"} + } + }, + "ParametricIAMRoleArn":{ + "type":"string", + "max":2048, + "min":4, + "pattern":"(^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$)|([\\.\\-_\\#A-Za-z0-9\\$\\{\\}]+)" + }, + "ParametricMonitoringConfiguration":{ + "type":"structure", + "members":{ + "persistentAppUI":{"shape":"TemplateParameter"}, + "cloudWatchMonitoringConfiguration":{"shape":"ParametricCloudWatchMonitoringConfiguration"}, + "s3MonitoringConfiguration":{"shape":"ParametricS3MonitoringConfiguration"} + } + }, + "ParametricReleaseLabel":{ + "type":"string", + "max":64, + "min":1, + "pattern":"([\\.\\-_/A-Za-z0-9]+|\\$\\{[a-zA-Z]\\w*\\})" + }, + "ParametricS3MonitoringConfiguration":{ + "type":"structure", + "members":{ + "logUri":{"shape":"UriString"} + } + }, "PersistentAppUI":{ "type":"string", "enum":[ @@ -952,10 +1186,7 @@ "type":"structure", "required":[ "virtualClusterId", - "clientToken", - "executionRoleArn", - "releaseLabel", - "jobDriver" + "clientToken" ], "members":{ "name":{"shape":"ResourceNameString"}, @@ -972,7 +1203,9 @@ "releaseLabel":{"shape":"ReleaseLabel"}, "jobDriver":{"shape":"JobDriver"}, "configurationOverrides":{"shape":"ConfigurationOverrides"}, - "tags":{"shape":"TagMap"} + "tags":{"shape":"TagMap"}, + "jobTemplateId":{"shape":"ResourceIdString"}, + "jobTemplateParameters":{"shape":"TemplateParameterInputMap"} } }, "StartJobRunResponse":{ @@ -996,6 +1229,12 @@ "min":1, "pattern":".*\\S.*" }, + "String2048":{ + "type":"string", + "max":2048, + "min":1, + "pattern":".*\\S.*" + }, "String256":{ "type":"string", "max":256, @@ -1045,6 +1284,44 @@ "members":{ } }, + "TemplateParameter":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_/#A-Za-z0-9\\$\\{\\}]+" + }, + "TemplateParameterConfiguration":{ + "type":"structure", + "members":{ + "type":{"shape":"TemplateParameterDataType"}, + "defaultValue":{"shape":"String1024"} + } + }, + "TemplateParameterConfigurationMap":{ + "type":"map", + "key":{"shape":"TemplateParameterName"}, + "value":{"shape":"TemplateParameterConfiguration"}, + "max":20 + }, + "TemplateParameterDataType":{ + "type":"string", + "enum":[ + "NUMBER", + "STRING" + ] + }, + "TemplateParameterInputMap":{ + "type":"map", + "key":{"shape":"TemplateParameterName"}, + "value":{"shape":"String1024"}, + "max":20 + }, + "TemplateParameterName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_\\#A-Za-z0-9]+" + }, "UntagResourceRequest":{ "type":"structure", "required":[ diff --git a/models/apis/emr-containers/2020-10-01/docs-2.json b/models/apis/emr-containers/2020-10-01/docs-2.json index bb6766899da..092de8f507e 100644 --- a/models/apis/emr-containers/2020-10-01/docs-2.json +++ b/models/apis/emr-containers/2020-10-01/docs-2.json @@ -3,14 +3,18 @@ "service": "

Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications. For more information about Amazon EMR on EKS concepts and tasks, see What is Amazon EMR on EKS.

Amazon EMR containers is the API name for Amazon EMR on EKS. The emr-containers prefix is used in the following scenarios:

", "operations": { "CancelJobRun": "

Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

", + "CreateJobTemplate": "

Creates a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

", "CreateManagedEndpoint": "

Creates a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

", "CreateVirtualCluster": "

Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

", + "DeleteJobTemplate": "

Deletes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

", "DeleteManagedEndpoint": "

Deletes a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

", "DeleteVirtualCluster": "

Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

", "DescribeJobRun": "

Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

", + "DescribeJobTemplate": "

Displays detailed information about a specified job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

", "DescribeManagedEndpoint": "

Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

", "DescribeVirtualCluster": "

Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

", "ListJobRuns": "

Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

", + "ListJobTemplates": "

Lists job templates based on a set of parameters. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

", "ListManagedEndpoints": "

Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

", "ListTagsForResource": "

Lists the tags assigned to the resources.

", "ListVirtualClusters": "

Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

", @@ -52,6 +56,7 @@ "ClientToken": { "base": null, "refs": { + "CreateJobTemplateRequest$clientToken": "

The client token of the job template.

", "CreateManagedEndpointRequest$clientToken": "

The client idempotency token for this create call.

", "CreateVirtualClusterRequest$clientToken": "

The client token of the virtual cluster.

", "JobRun$clientToken": "

The client token used to start a job run.

", @@ -80,7 +85,8 @@ "base": null, "refs": { "Configuration$configurations": "

A list of additional configurations to apply within a configuration object.

", - "ConfigurationOverrides$applicationConfiguration": "

The configurations for the application running by the job run.

" + "ConfigurationOverrides$applicationConfiguration": "

The configurations for the application running by the job run.

", + "ParametricConfigurationOverrides$applicationConfiguration": "

The configurations for the application running by the job run.

" } }, "ConfigurationOverrides": { @@ -112,6 +118,16 @@ "ListVirtualClustersRequest$containerProviderType": "

The container provider type of the virtual cluster. EKS is the only supported type as of now.

" } }, + "CreateJobTemplateRequest": { + "base": null, + "refs": { + } + }, + "CreateJobTemplateResponse": { + "base": null, + "refs": { + } + }, "CreateManagedEndpointRequest": { "base": null, "refs": { @@ -135,11 +151,15 @@ "Date": { "base": null, "refs": { + "CreateJobTemplateResponse$createdAt": "

This output displays the date and time when the job template was created.

", "Endpoint$createdAt": "

The date and time when the endpoint was created.

", "JobRun$createdAt": "

The date and time when the job run was created.

", "JobRun$finishedAt": "

The date and time when the job run has finished.

", + "JobTemplate$createdAt": "

The date and time when the job template was created.

", "ListJobRunsRequest$createdBefore": "

The date and time before which the job runs were submitted.

", "ListJobRunsRequest$createdAfter": "

The date and time after which the job runs were submitted.

", + "ListJobTemplatesRequest$createdAfter": "

The date and time after which the job templates were created.

", + "ListJobTemplatesRequest$createdBefore": "

The date and time before which the job templates were created.

", "ListManagedEndpointsRequest$createdBefore": "

The date and time before which the endpoints are created.

", "ListManagedEndpointsRequest$createdAfter": "

The date and time after which the endpoints are created.

", "ListVirtualClustersRequest$createdAfter": "

The date and time after which the virtual clusters are created.

", @@ -147,6 +167,16 @@ "VirtualCluster$createdAt": "

The date and time when the virtual cluster is created.

" } }, + "DeleteJobTemplateRequest": { + "base": null, + "refs": { + } + }, + "DeleteJobTemplateResponse": { + "base": null, + "refs": { + } + }, "DeleteManagedEndpointRequest": { "base": null, "refs": { @@ -177,6 +207,16 @@ "refs": { } }, + "DescribeJobTemplateRequest": { + "base": null, + "refs": { + } + }, + "DescribeJobTemplateResponse": { + "base": null, + "refs": { + } + }, "DescribeManagedEndpointRequest": { "base": null, "refs": { @@ -294,6 +334,7 @@ "base": null, "refs": { "ListJobRunsRequest$maxResults": "

The maximum number of job runs that can be listed.

", + "ListJobTemplatesRequest$maxResults": "

The maximum number of job templates that can be listed.

", "ListManagedEndpointsRequest$maxResults": "

The maximum number of managed endpoints that can be listed.

", "ListVirtualClustersRequest$maxResults": "

The maximum number of virtual clusters that can be listed.

" } @@ -306,9 +347,10 @@ } }, "JobDriver": { - "base": "

Specify the driver that the job runs on.

", + "base": "

Specify the driver that the job runs on. Exactly one of the two available job drivers is required, either sparkSqlJobDriver or sparkSubmitJobDriver.

", "refs": { "JobRun$jobDriver": "

Parameters of job driver for the job run.

", + "JobTemplateData$jobDriver": null, "StartJobRunRequest$jobDriver": "

The job driver for the job run.

" } }, @@ -338,6 +380,40 @@ "ListJobRunsResponse$jobRuns": "

This output lists information about the specified job runs.

" } }, + "JobTemplate": { + "base": "

This entity describes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

", + "refs": { + "DescribeJobTemplateResponse$jobTemplate": "

This output displays information about the specified job template.

", + "JobTemplates$member": null + } + }, + "JobTemplateArn": { + "base": null, + "refs": { + "CreateJobTemplateResponse$arn": "

This output display the ARN of the created job template.

", + "JobTemplate$arn": "

The ARN of the job template.

" + } + }, + "JobTemplateData": { + "base": "

The values of StartJobRun API requests used in job runs started using the job template.

", + "refs": { + "CreateJobTemplateRequest$jobTemplateData": "

The job template data which holds values of StartJobRun API request.

", + "JobTemplate$jobTemplateData": "

The job template data which holds values of StartJobRun API request.

" + } + }, + "JobTemplates": { + "base": null, + "refs": { + "ListJobTemplatesResponse$templates": "

This output lists information about the specified job templates.

" + } + }, + "KmsKeyArn": { + "base": null, + "refs": { + "CreateJobTemplateRequest$kmsKeyArn": "

The KMS key ARN used to encrypt the job template.

", + "JobTemplate$kmsKeyArn": "

The KMS key ARN used to encrypt the job template.

" + } + }, "KubernetesNamespace": { "base": null, "refs": { @@ -354,6 +430,16 @@ "refs": { } }, + "ListJobTemplatesRequest": { + "base": null, + "refs": { + } + }, + "ListJobTemplatesResponse": { + "base": null, + "refs": { + } + }, "ListManagedEndpointsRequest": { "base": null, "refs": { @@ -401,12 +487,50 @@ "refs": { "ListJobRunsRequest$nextToken": "

The token for the next set of job runs to return.

", "ListJobRunsResponse$nextToken": "

This output displays the token for the next set of job runs.

", + "ListJobTemplatesRequest$nextToken": "

The token for the next set of job templates to return.

", + "ListJobTemplatesResponse$nextToken": "

This output displays the token for the next set of job templates.

", "ListManagedEndpointsRequest$nextToken": "

The token for the next set of managed endpoints to return.

", "ListManagedEndpointsResponse$nextToken": "

The token for the next set of endpoints to return.

", "ListVirtualClustersRequest$nextToken": "

The token for the next set of virtual clusters to return.

", "ListVirtualClustersResponse$nextToken": "

This output displays the token for the next set of virtual clusters.

" } }, + "ParametricCloudWatchMonitoringConfiguration": { + "base": "

A configuration for CloudWatch monitoring. You can configure your jobs to send log information to CloudWatch Logs. This data type allows job template parameters to be specified within.

", + "refs": { + "ParametricMonitoringConfiguration$cloudWatchMonitoringConfiguration": "

Monitoring configurations for CloudWatch.

" + } + }, + "ParametricConfigurationOverrides": { + "base": "

A configuration specification to be used to override existing configurations. This data type allows job template parameters to be specified within.

", + "refs": { + "JobTemplateData$configurationOverrides": "

The configuration settings that are used to override defaults configuration.

" + } + }, + "ParametricIAMRoleArn": { + "base": null, + "refs": { + "JobTemplateData$executionRoleArn": "

The execution role ARN of the job run.

" + } + }, + "ParametricMonitoringConfiguration": { + "base": "

Configuration setting for monitoring. This data type allows job template parameters to be specified within.

", + "refs": { + "ParametricConfigurationOverrides$monitoringConfiguration": "

The configurations for monitoring.

" + } + }, + "ParametricReleaseLabel": { + "base": null, + "refs": { + "JobTemplateData$releaseLabel": "

The release version of Amazon EMR.

" + } + }, + "ParametricS3MonitoringConfiguration": { + "base": "

Amazon S3 configuration for monitoring log publishing. You can configure your jobs to send log information to Amazon S3. This data type allows job template parameters to be specified within.

", + "refs": { + "ParametricMonitoringConfiguration$s3MonitoringConfiguration": "

Amazon S3 configuration for monitoring log publishing.

" + } + }, "PersistentAppUI": { "base": null, "refs": { @@ -425,7 +549,8 @@ "RequestIdentityUserArn": { "base": null, "refs": { - "JobRun$createdBy": "

The user who created the job run.

" + "JobRun$createdBy": "

The user who created the job run.

", + "JobTemplate$createdBy": "

The user who created the job template.

" } }, "ResourceIdString": { @@ -435,10 +560,13 @@ "CancelJobRunRequest$virtualClusterId": "

The ID of the virtual cluster for which the job run will be canceled.

", "CancelJobRunResponse$id": "

The output contains the ID of the cancelled job run.

", "CancelJobRunResponse$virtualClusterId": "

The output contains the virtual cluster ID for which the job run is cancelled.

", + "CreateJobTemplateResponse$id": "

This output display the created job template ID.

", "CreateManagedEndpointRequest$virtualClusterId": "

The ID of the virtual cluster for which a managed endpoint is created.

", "CreateManagedEndpointResponse$id": "

The output contains the ID of the managed endpoint.

", "CreateManagedEndpointResponse$virtualClusterId": "

The output contains the ID of the virtual cluster.

", "CreateVirtualClusterResponse$id": "

This output contains the virtual cluster ID.

", + "DeleteJobTemplateRequest$id": "

The ID of the job template that will be deleted.

", + "DeleteJobTemplateResponse$id": "

This output contains the ID of the job template that was deleted.

", "DeleteManagedEndpointRequest$id": "

The ID of the managed endpoint.

", "DeleteManagedEndpointRequest$virtualClusterId": "

The ID of the endpoint's virtual cluster.

", "DeleteManagedEndpointResponse$id": "

The output displays the ID of the managed endpoint.

", @@ -447,6 +575,7 @@ "DeleteVirtualClusterResponse$id": "

This output contains the ID of the virtual cluster that will be deleted.

", "DescribeJobRunRequest$id": "

The ID of the job run request.

", "DescribeJobRunRequest$virtualClusterId": "

The ID of the virtual cluster for which the job run is submitted.

", + "DescribeJobTemplateRequest$id": "

The ID of the job template that will be described.

", "DescribeManagedEndpointRequest$id": "

This output displays ID of the managed endpoint.

", "DescribeManagedEndpointRequest$virtualClusterId": "

The ID of the endpoint's virtual cluster.

", "DescribeVirtualClusterRequest$id": "

The ID of the virtual cluster that will be described.

", @@ -454,9 +583,11 @@ "Endpoint$virtualClusterId": "

The ID of the endpoint's virtual cluster.

", "JobRun$id": "

The ID of the job run.

", "JobRun$virtualClusterId": "

The ID of the job run's virtual cluster.

", + "JobTemplate$id": "

The ID of the job template.

", "ListJobRunsRequest$virtualClusterId": "

The ID of the virtual cluster for which to list the job run.

", "ListManagedEndpointsRequest$virtualClusterId": "

The ID of the virtual cluster.

", "StartJobRunRequest$virtualClusterId": "

The virtual cluster ID for which the job run request is submitted.

", + "StartJobRunRequest$jobTemplateId": "

The job template ID to be used to start the job run.

", "StartJobRunResponse$id": "

This output displays the started job run ID.

", "StartJobRunResponse$virtualClusterId": "

This output displays the virtual cluster ID for which the job run was submitted.

", "VirtualCluster$id": "

The ID of the virtual cluster.

" @@ -465,12 +596,15 @@ "ResourceNameString": { "base": null, "refs": { + "CreateJobTemplateRequest$name": "

The specified name of the job template.

", + "CreateJobTemplateResponse$name": "

This output displays the name of the created job template.

", "CreateManagedEndpointRequest$name": "

The name of the managed endpoint.

", "CreateManagedEndpointResponse$name": "

The output contains the name of the managed endpoint.

", "CreateVirtualClusterRequest$name": "

The specified name of the virtual cluster.

", "CreateVirtualClusterResponse$name": "

This output contains the name of the virtual cluster.

", "Endpoint$name": "

The name of the endpoint.

", "JobRun$name": "

The name of the job run.

", + "JobTemplate$name": "

The name of the job template.

", "ListJobRunsRequest$name": "

The name of the job run.

", "StartJobRunRequest$name": "

The name of the job run.

", "StartJobRunResponse$name": "

This output displays the name of the started job run.

", @@ -545,6 +679,8 @@ "ResourceNotFoundException$message": null, "SensitivePropertiesMap$key": null, "SensitivePropertiesMap$value": null, + "TemplateParameterConfiguration$defaultValue": "

The default value for the job template parameter.

", + "TemplateParameterInputMap$value": null, "ValidationException$message": null } }, @@ -555,6 +691,12 @@ "TagMap$key": null } }, + "String2048": { + "base": null, + "refs": { + "JobTemplate$decryptionError": "

The error message in case the decryption of job template fails.

" + } + }, "String256": { "base": null, "refs": { @@ -562,6 +704,7 @@ "Endpoint$securityGroup": "

The security group configuration of the endpoint.

", "Endpoint$stateDetails": "

Additional details of the endpoint state.

", "JobRun$stateDetails": "

Additional details of the job run state.

", + "ParametricCloudWatchMonitoringConfiguration$logStreamNamePrefix": "

The specified name prefix for log streams.

", "SubnetIds$member": null } }, @@ -586,10 +729,13 @@ "TagMap": { "base": null, "refs": { + "CreateJobTemplateRequest$tags": "

The tags that are associated with the job template.

", "CreateManagedEndpointRequest$tags": "

The tags of the managed endpoint.

", "CreateVirtualClusterRequest$tags": "

The tags assigned to the virtual cluster.

", "Endpoint$tags": "

The tags of the endpoint.

", "JobRun$tags": "

The assigned tags of the job run.

", + "JobTemplate$tags": "

The tags assigned to the job template.

", + "JobTemplateData$jobTags": "

The tags assigned to jobs started using the job template.

", "ListTagsForResourceResponse$tags": "

The tags assigned to resources.

", "StartJobRunRequest$tags": "

The tags assigned to job runs.

", "TagResourceRequest$tags": "

The tags assigned to resources.

", @@ -606,6 +752,44 @@ "refs": { } }, + "TemplateParameter": { + "base": null, + "refs": { + "ParametricCloudWatchMonitoringConfiguration$logGroupName": "

The name of the log group for log publishing.

", + "ParametricMonitoringConfiguration$persistentAppUI": "

Monitoring configurations for the persistent application UI.

" + } + }, + "TemplateParameterConfiguration": { + "base": "

The configuration of a job template parameter.

", + "refs": { + "TemplateParameterConfigurationMap$value": null + } + }, + "TemplateParameterConfigurationMap": { + "base": null, + "refs": { + "JobTemplateData$parameterConfiguration": "

The configuration of parameters existing in the job template.

" + } + }, + "TemplateParameterDataType": { + "base": null, + "refs": { + "TemplateParameterConfiguration$type": "

The type of the job template parameter. Allowed values are: ‘String’, ‘Number’.

" + } + }, + "TemplateParameterInputMap": { + "base": null, + "refs": { + "StartJobRunRequest$jobTemplateParameters": "

The values of job template parameters to start a job run.

" + } + }, + "TemplateParameterName": { + "base": null, + "refs": { + "TemplateParameterConfigurationMap$key": null, + "TemplateParameterInputMap$key": null + } + }, "UntagResourceRequest": { "base": null, "refs": { @@ -620,6 +804,7 @@ "base": null, "refs": { "Endpoint$serverUrl": "

The server URL of the endpoint.

", + "ParametricS3MonitoringConfiguration$logUri": "

Amazon S3 destination URI for log publishing.

", "S3MonitoringConfiguration$logUri": "

Amazon S3 destination URI for log publishing.

" } }, diff --git a/models/apis/emr-containers/2020-10-01/endpoint-rule-set-1.json b/models/apis/emr-containers/2020-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000000..c5600be2399 --- /dev/null +++ b/models/apis/emr-containers/2020-10-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/emr-containers/2020-10-01/endpoint-tests-1.json b/models/apis/emr-containers/2020-10-01/endpoint-tests-1.json new file mode 100644 index 00000000000..bed95009165 --- /dev/null +++ b/models/apis/emr-containers/2020-10-01/endpoint-tests-1.json @@ -0,0 +1,1031 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/emr-containers/2020-10-01/paginators-1.json b/models/apis/emr-containers/2020-10-01/paginators-1.json index 48c53c8f286..81c76f3fe17 100644 --- a/models/apis/emr-containers/2020-10-01/paginators-1.json +++ b/models/apis/emr-containers/2020-10-01/paginators-1.json @@ -6,6 +6,12 @@ "limit_key": "maxResults", "result_key": "jobRuns" }, + "ListJobTemplates": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "templates" + }, "ListManagedEndpoints": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/logs/2014-03-28/docs-2.json b/models/apis/logs/2014-03-28/docs-2.json index 1490303d5ba..033b30cf0c3 100644 --- a/models/apis/logs/2014-03-28/docs-2.json +++ b/models/apis/logs/2014-03-28/docs-2.json @@ -4,7 +4,7 @@ "operations": { "AssociateKmsKey": "

Associates the specified Key Management Service customer master key (CMK) with the specified log group.

Associating an KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

It can take up to 5 minutes for this operation to take effect.

If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

", "CancelExportTask": "

Cancels the specified export task.

The task must be in the PENDING or RUNNING state.

", - "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting to S3 buckets encrypted with SSE-KMS is not supported.

", + "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

Exporting log data to Amazon S3 buckets that are encrypted by KMS is supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a retention period is also supported.

Exporting to S3 buckets that are encrypted with AES-256 is supported.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Time-based sorting on chunks of log data inside an exported file is not guaranteed. You can sort the exported log fild data by using Linux utilities.

", "CreateLogGroup": "

Creates a log group with the specified name. You can create up to 20,000 log groups per account.

You must use the following guidelines when naming a log group:

When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

If you associate a Key Management Service customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

", "CreateLogStream": "

Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored.

There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled.

You must use the following guidelines when naming a log stream:

", "DeleteDestination": "

Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination.

", @@ -25,7 +25,7 @@ "DescribeResourcePolicies": "

Lists the resource policies in this account.

", "DescribeSubscriptionFilters": "

Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name.

", "DisassociateKmsKey": "

Disassociates the associated Key Management Service customer master key (CMK) from the specified log group.

After the KMS CMK is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested.

Note that it can take up to 5 minutes for this operation to take effect.

", - "FilterLogEvents": "

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token.

The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request.

", + "FilterLogEvents": "

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

You must have the logs;FilterLogEvents permission to perform this operation.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token.

The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request.

", "GetLogEvents": "

Lists log events from the specified log stream. You can list all of the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token.

", "GetLogGroupFields": "

Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify.

In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields.

The response results are sorted by the frequency percentage, starting with the highest percentage.

", "GetLogRecord": "

Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs.

The full unparsed log event is returned within @message.

", @@ -38,9 +38,9 @@ "PutMetricFilter": "

Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents.

The maximum number of metric filters that can be associated with a log group is 100.

When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created.

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.

", "PutQueryDefinition": "

Creates or updates a query definition for CloudWatch Logs Insights. For more information, see Analyzing Log Data with CloudWatch Logs Insights.

To update a query definition, specify its queryDefinitionId in your request. The values of name, queryString, and logGroupNames are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, if you update a current query definition that includes log groups, and you don't specify the logGroupNames parameter in your update operation, the query definition changes to contain no log groups.

You must have the logs:PutQueryDefinition permission to be able to perform this operation.

", "PutResourcePolicy": "

Creates or updates a resource policy allowing other Amazon Web Services services to put log events to this account, such as Amazon Route 53. An account can have up to 10 resource policies per Amazon Web Services Region.

", - "PutRetentionPolicy": "

Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group.

", + "PutRetentionPolicy": "

Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group.

CloudWatch Logs doesn’t immediately delete log events when they reach their retention setting. It typically takes up to 72 hours after that before log events are deleted, but in rare situations might take longer.

This means that if you change a log group to have a longer retention setting when it contains log events that are past the expiration date, but haven’t been actually deleted, those log events will take up to 72 hours to be deleted after the new retention date is reached. To make sure that log data is deleted permanently, keep a log group at its lower retention setting until 72 hours has passed after the end of the previous retention period, or you have confirmed that the older log events are deleted.

", "PutSubscriptionFilter": "

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the gzip format.

The following destinations are supported for subscription filters:

Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName.

To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission.

", - "StartQuery": "

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use.

For more information, see CloudWatch Logs Insights Query Syntax.

Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

", + "StartQuery": "

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use.

For more information, see CloudWatch Logs Insights Query Syntax.

Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

You are limited to 20 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards.

", "StopQuery": "

Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running.

", "TagLogGroup": "

The TagLogGroup operation is on the path to deprecation. We recommend that you use TagResource instead.

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsForResource. To remove tags, use UntagResource.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", "TagResource": "

Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs resource. Currently, the only CloudWatch Logs resources that can be tagged are log groups and destinations.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a CloudWatch Logs resource.

", @@ -109,7 +109,7 @@ } }, "Days": { - "base": "

The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653.

To set a log group to never have log events expire, use DeleteRetentionPolicy.

", + "base": "

The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.

To set a log group to never have log events expire, use DeleteRetentionPolicy.

", "refs": { "LogGroup$retentionInDays": null, "PutRetentionPolicyRequest$retentionInDays": null @@ -195,7 +195,7 @@ "DescribeLimit": { "base": null, "refs": { - "DescribeDestinationsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", + "DescribeDestinationsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default maximum value of 50 items is used.

", "DescribeExportTasksRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", "DescribeLogGroupsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", "DescribeLogStreamsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", @@ -1266,7 +1266,7 @@ "base": null, "refs": { "CreateExportTaskRequest$from": "

The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported.

", - "CreateExportTaskRequest$to": "

The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

", + "CreateExportTaskRequest$to": "

The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

You must specify a time that is not earlier than when this log group was created.

", "Destination$creationTime": "

The creation time of the destination, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", "ExportTask$from": "

The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not exported.

", "ExportTask$to": "

The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 8385438b746..23989e36e23 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -7096,20 +7096,53 @@ "credentialScope" : { "region" : "us-east-1" }, + "deprecated" : true, "hostname" : "ingest.timestream-fips.us-east-1.amazonaws.com" }, "ingest-fips-us-east-2" : { "credentialScope" : { "region" : "us-east-2" }, + "deprecated" : true, "hostname" : "ingest.timestream-fips.us-east-2.amazonaws.com" }, "ingest-fips-us-west-2" : { "credentialScope" : { "region" : "us-west-2" }, + "deprecated" : true, "hostname" : "ingest.timestream-fips.us-west-2.amazonaws.com" }, + "ingest-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "ingest.timestream-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ingest-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "ingest.timestream-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ingest-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "ingest.timestream-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -10131,10 +10164,26 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "ca-central-1" : { }, + "ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "pinpoint.ca-central-1.amazonaws.com", + "variants" : [ { + "hostname" : "pinpoint-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "pinpoint-fips.ca-central-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" diff --git a/service/cloudwatchlogs/api.go b/service/cloudwatchlogs/api.go index 602fc7b9adb..d8cf3ddd3a4 100644 --- a/service/cloudwatchlogs/api.go +++ b/service/cloudwatchlogs/api.go @@ -257,6 +257,12 @@ func (c *CloudWatchLogs) CreateExportTaskRequest(input *CreateExportTaskInput) ( // you must use credentials that have permission to write to the S3 bucket that // you specify as the destination. // +// Exporting log data to Amazon S3 buckets that are encrypted by KMS is supported. +// Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled +// with a retention period is also supported. +// +// Exporting to S3 buckets that are encrypted with AES-256 is supported. +// // This is an asynchronous call. If all the required information is provided, // this operation initiates an export task and responds with the ID of the task. // After the task has started, you can use DescribeExportTasks (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeExportTasks.html) @@ -268,8 +274,8 @@ func (c *CloudWatchLogs) CreateExportTaskRequest(input *CreateExportTaskInput) ( // same S3 bucket. To separate out log data for each export task, you can specify // a prefix to be used as the Amazon S3 key prefix for all exported objects. // -// Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting -// to S3 buckets encrypted with SSE-KMS is not supported. +// Time-based sorting on chunks of log data inside an exported file is not guaranteed. +// You can sort the exported log fild data by using Linux utilities. // // 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 @@ -2478,6 +2484,8 @@ func (c *CloudWatchLogs) FilterLogEventsRequest(input *FilterLogEventsInput) (re // or filter the results using a filter pattern, a time range, and the name // of the log stream. // +// You must have the logs;FilterLogEvents permission to perform this operation. +// // By default, this operation returns as many log events as can fit in 1 MB // (up to 10,000 log events) or all the events found within the time range that // you specify. If the results include a token, then there are more log events @@ -3874,6 +3882,18 @@ func (c *CloudWatchLogs) PutRetentionPolicyRequest(input *PutRetentionPolicyInpu // you to configure the number of days for which to retain log events in the // specified log group. // +// CloudWatch Logs doesn’t immediately delete log events when they reach their +// retention setting. It typically takes up to 72 hours after that before log +// events are deleted, but in rare situations might take longer. +// +// This means that if you change a log group to have a longer retention setting +// when it contains log events that are past the expiration date, but haven’t +// been actually deleted, those log events will take up to 72 hours to be deleted +// after the new retention date is reached. To make sure that log data is deleted +// permanently, keep a log group at its lower retention setting until 72 hours +// has passed after the end of the previous retention period, or you have confirmed +// that the older log events are deleted. +// // 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. @@ -4087,6 +4107,9 @@ func (c *CloudWatchLogs) StartQueryRequest(input *StartQueryInput) (req *request // out, reduce the time range being searched or partition your query into a // number of queries. // +// You are limited to 20 concurrent CloudWatch Logs insights queries, including +// queries that have been added to dashboards. +// // 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. @@ -4902,6 +4925,9 @@ type CreateExportTaskInput struct { // after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time // are not exported. // + // You must specify a time that is not earlier than when this log group was + // created. + // // To is a required field To *int64 `locationName:"to" type:"long" required:"true"` } @@ -5901,7 +5927,7 @@ type DescribeDestinationsInput struct { DestinationNamePrefix *string `min:"1" type:"string"` // The maximum number of items returned. If you don't specify a value, the default - // is up to 50 items. + // maximum value of 50 items is used. Limit *int64 `locationName:"limit" min:"1" type:"integer"` // The token for the next set of items to return. (You received this token from @@ -8613,7 +8639,7 @@ type LogGroup struct { // The number of days to retain the log events in the specified log group. Possible // values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, - // 1827, and 3653. + // 1827, 2192, 2557, 2922, 3288, and 3653. // // To set a log group to never have log events expire, use DeleteRetentionPolicy // (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). @@ -10025,7 +10051,7 @@ type PutRetentionPolicyInput struct { // The number of days to retain the log events in the specified log group. Possible // values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, - // 1827, and 3653. + // 1827, 2192, 2557, 2922, 3288, and 3653. // // To set a log group to never have log events expire, use DeleteRetentionPolicy // (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). diff --git a/service/ec2/api.go b/service/ec2/api.go index 3797b053156..4dbd3ddd1d7 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -3356,6 +3356,82 @@ func (c *EC2) CancelExportTaskWithContext(ctx aws.Context, input *CancelExportTa return out, req.Send() } +const opCancelImageLaunchPermission = "CancelImageLaunchPermission" + +// CancelImageLaunchPermissionRequest generates a "aws/request.Request" representing the +// client's request for the CancelImageLaunchPermission 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 CancelImageLaunchPermission for more information on using the CancelImageLaunchPermission +// 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 CancelImageLaunchPermissionRequest method. +// req, resp := client.CancelImageLaunchPermissionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImageLaunchPermission +func (c *EC2) CancelImageLaunchPermissionRequest(input *CancelImageLaunchPermissionInput) (req *request.Request, output *CancelImageLaunchPermissionOutput) { + op := &request.Operation{ + Name: opCancelImageLaunchPermission, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CancelImageLaunchPermissionInput{} + } + + output = &CancelImageLaunchPermissionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CancelImageLaunchPermission API operation for Amazon Elastic Compute Cloud. +// +// Removes your Amazon Web Services account from the launch permissions for +// the specified AMI. For more information, see Cancel sharing an AMI with your +// Amazon Web Services account (https://docs.aws.amazon.com/) in the Amazon +// Elastic Compute Cloud User Guide. +// +// 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 Amazon Elastic Compute Cloud's +// API operation CancelImageLaunchPermission for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImageLaunchPermission +func (c *EC2) CancelImageLaunchPermission(input *CancelImageLaunchPermissionInput) (*CancelImageLaunchPermissionOutput, error) { + req, out := c.CancelImageLaunchPermissionRequest(input) + return out, req.Send() +} + +// CancelImageLaunchPermissionWithContext is the same as CancelImageLaunchPermission with the addition of +// the ability to pass a context and additional request options. +// +// See CancelImageLaunchPermission 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 *EC2) CancelImageLaunchPermissionWithContext(ctx aws.Context, input *CancelImageLaunchPermissionInput, opts ...request.Option) (*CancelImageLaunchPermissionOutput, error) { + req, out := c.CancelImageLaunchPermissionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCancelImportTask = "CancelImportTask" // CancelImportTaskRequest generates a "aws/request.Request" representing the @@ -57662,6 +57738,95 @@ func (s CancelExportTaskOutput) GoString() string { return s.String() } +type CancelImageLaunchPermissionInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the AMI that was shared with your Amazon Web Services account. + // + // ImageId is a required field + ImageId *string `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 CancelImageLaunchPermissionInput) 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 CancelImageLaunchPermissionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CancelImageLaunchPermissionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CancelImageLaunchPermissionInput"} + if s.ImageId == nil { + invalidParams.Add(request.NewErrParamRequired("ImageId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *CancelImageLaunchPermissionInput) SetDryRun(v bool) *CancelImageLaunchPermissionInput { + s.DryRun = &v + return s +} + +// SetImageId sets the ImageId field's value. +func (s *CancelImageLaunchPermissionInput) SetImageId(v string) *CancelImageLaunchPermissionInput { + s.ImageId = &v + return s +} + +type CancelImageLaunchPermissionOutput struct { + _ struct{} `type:"structure"` + + // Returns true if the request succeeds; otherwise, it returns an error. + Return *bool `locationName:"return" type:"boolean"` +} + +// 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 CancelImageLaunchPermissionOutput) 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 CancelImageLaunchPermissionOutput) GoString() string { + return s.String() +} + +// SetReturn sets the Return field's value. +func (s *CancelImageLaunchPermissionOutput) SetReturn(v bool) *CancelImageLaunchPermissionOutput { + s.Return = &v + return s +} + type CancelImportTaskInput struct { _ struct{} `type:"structure"` @@ -105507,7 +105672,8 @@ type EnableImageDeprecationInput struct { // the seconds to the nearest minute. // // You can’t specify a date in the past. The upper limit for DeprecateAt is - // 10 years from now. + // 10 years from now, except for public AMIs, where the upper limit is 2 years + // from the creation date. // // DeprecateAt is a required field DeprecateAt *time.Time `type:"timestamp" required:"true"` diff --git a/service/ec2/ec2iface/interface.go b/service/ec2/ec2iface/interface.go index 5129f7f0d4f..7711b586eba 100644 --- a/service/ec2/ec2iface/interface.go +++ b/service/ec2/ec2iface/interface.go @@ -224,6 +224,10 @@ type EC2API interface { CancelExportTaskWithContext(aws.Context, *ec2.CancelExportTaskInput, ...request.Option) (*ec2.CancelExportTaskOutput, error) CancelExportTaskRequest(*ec2.CancelExportTaskInput) (*request.Request, *ec2.CancelExportTaskOutput) + CancelImageLaunchPermission(*ec2.CancelImageLaunchPermissionInput) (*ec2.CancelImageLaunchPermissionOutput, error) + CancelImageLaunchPermissionWithContext(aws.Context, *ec2.CancelImageLaunchPermissionInput, ...request.Option) (*ec2.CancelImageLaunchPermissionOutput, error) + CancelImageLaunchPermissionRequest(*ec2.CancelImageLaunchPermissionInput) (*request.Request, *ec2.CancelImageLaunchPermissionOutput) + CancelImportTask(*ec2.CancelImportTaskInput) (*ec2.CancelImportTaskOutput, error) CancelImportTaskWithContext(aws.Context, *ec2.CancelImportTaskInput, ...request.Option) (*ec2.CancelImportTaskOutput, error) CancelImportTaskRequest(*ec2.CancelImportTaskInput) (*request.Request, *ec2.CancelImportTaskOutput) diff --git a/service/emrcontainers/api.go b/service/emrcontainers/api.go index 7031fde5199..838a71e0c86 100644 --- a/service/emrcontainers/api.go +++ b/service/emrcontainers/api.go @@ -96,6 +96,94 @@ func (c *EMRContainers) CancelJobRunWithContext(ctx aws.Context, input *CancelJo return out, req.Send() } +const opCreateJobTemplate = "CreateJobTemplate" + +// CreateJobTemplateRequest generates a "aws/request.Request" representing the +// client's request for the CreateJobTemplate 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 CreateJobTemplate for more information on using the CreateJobTemplate +// 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 CreateJobTemplateRequest method. +// req, resp := client.CreateJobTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/CreateJobTemplate +func (c *EMRContainers) CreateJobTemplateRequest(input *CreateJobTemplateInput) (req *request.Request, output *CreateJobTemplateOutput) { + op := &request.Operation{ + Name: opCreateJobTemplate, + HTTPMethod: "POST", + HTTPPath: "/jobtemplates", + } + + if input == nil { + input = &CreateJobTemplateInput{} + } + + output = &CreateJobTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateJobTemplate API operation for Amazon EMR Containers. +// +// Creates a job template. Job template stores values of StartJobRun API request +// in a template and can be used to start a job run. Job template allows two +// use cases: avoid repeating recurring StartJobRun API request values, enforcing +// certain values in StartJobRun API request. +// +// 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 Amazon EMR Containers's +// API operation CreateJobTemplate for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// There are invalid parameters in the client request. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServerException +// This is an internal server exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/CreateJobTemplate +func (c *EMRContainers) CreateJobTemplate(input *CreateJobTemplateInput) (*CreateJobTemplateOutput, error) { + req, out := c.CreateJobTemplateRequest(input) + return out, req.Send() +} + +// CreateJobTemplateWithContext is the same as CreateJobTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See CreateJobTemplate 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 *EMRContainers) CreateJobTemplateWithContext(ctx aws.Context, input *CreateJobTemplateInput, opts ...request.Option) (*CreateJobTemplateOutput, error) { + req, out := c.CreateJobTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateManagedEndpoint = "CreateManagedEndpoint" // CreateManagedEndpointRequest generates a "aws/request.Request" representing the @@ -273,6 +361,91 @@ func (c *EMRContainers) CreateVirtualClusterWithContext(ctx aws.Context, input * return out, req.Send() } +const opDeleteJobTemplate = "DeleteJobTemplate" + +// DeleteJobTemplateRequest generates a "aws/request.Request" representing the +// client's request for the DeleteJobTemplate 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 DeleteJobTemplate for more information on using the DeleteJobTemplate +// 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 DeleteJobTemplateRequest method. +// req, resp := client.DeleteJobTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/DeleteJobTemplate +func (c *EMRContainers) DeleteJobTemplateRequest(input *DeleteJobTemplateInput) (req *request.Request, output *DeleteJobTemplateOutput) { + op := &request.Operation{ + Name: opDeleteJobTemplate, + HTTPMethod: "DELETE", + HTTPPath: "/jobtemplates/{templateId}", + } + + if input == nil { + input = &DeleteJobTemplateInput{} + } + + output = &DeleteJobTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteJobTemplate API operation for Amazon EMR Containers. +// +// Deletes a job template. Job template stores values of StartJobRun API request +// in a template and can be used to start a job run. Job template allows two +// use cases: avoid repeating recurring StartJobRun API request values, enforcing +// certain values in StartJobRun API request. +// +// 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 Amazon EMR Containers's +// API operation DeleteJobTemplate for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// There are invalid parameters in the client request. +// +// - InternalServerException +// This is an internal server exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/DeleteJobTemplate +func (c *EMRContainers) DeleteJobTemplate(input *DeleteJobTemplateInput) (*DeleteJobTemplateOutput, error) { + req, out := c.DeleteJobTemplateRequest(input) + return out, req.Send() +} + +// DeleteJobTemplateWithContext is the same as DeleteJobTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteJobTemplate 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 *EMRContainers) DeleteJobTemplateWithContext(ctx aws.Context, input *DeleteJobTemplateInput, opts ...request.Option) (*DeleteJobTemplateOutput, error) { + req, out := c.DeleteJobTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteManagedEndpoint = "DeleteManagedEndpoint" // DeleteManagedEndpointRequest generates a "aws/request.Request" representing the @@ -531,6 +704,95 @@ func (c *EMRContainers) DescribeJobRunWithContext(ctx aws.Context, input *Descri return out, req.Send() } +const opDescribeJobTemplate = "DescribeJobTemplate" + +// DescribeJobTemplateRequest generates a "aws/request.Request" representing the +// client's request for the DescribeJobTemplate 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 DescribeJobTemplate for more information on using the DescribeJobTemplate +// 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 DescribeJobTemplateRequest method. +// req, resp := client.DescribeJobTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/DescribeJobTemplate +func (c *EMRContainers) DescribeJobTemplateRequest(input *DescribeJobTemplateInput) (req *request.Request, output *DescribeJobTemplateOutput) { + op := &request.Operation{ + Name: opDescribeJobTemplate, + HTTPMethod: "GET", + HTTPPath: "/jobtemplates/{templateId}", + } + + if input == nil { + input = &DescribeJobTemplateInput{} + } + + output = &DescribeJobTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeJobTemplate API operation for Amazon EMR Containers. +// +// Displays detailed information about a specified job template. Job template +// stores values of StartJobRun API request in a template and can be used to +// start a job run. Job template allows two use cases: avoid repeating recurring +// StartJobRun API request values, enforcing certain values in StartJobRun API +// request. +// +// 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 Amazon EMR Containers's +// API operation DescribeJobTemplate for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// There are invalid parameters in the client request. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServerException +// This is an internal server exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/DescribeJobTemplate +func (c *EMRContainers) DescribeJobTemplate(input *DescribeJobTemplateInput) (*DescribeJobTemplateOutput, error) { + req, out := c.DescribeJobTemplateRequest(input) + return out, req.Send() +} + +// DescribeJobTemplateWithContext is the same as DescribeJobTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeJobTemplate 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 *EMRContainers) DescribeJobTemplateWithContext(ctx aws.Context, input *DescribeJobTemplateInput, opts ...request.Option) (*DescribeJobTemplateOutput, error) { + req, out := c.DescribeJobTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeManagedEndpoint = "DescribeManagedEndpoint" // DescribeManagedEndpointRequest generates a "aws/request.Request" representing the @@ -849,36 +1111,36 @@ func (c *EMRContainers) ListJobRunsPagesWithContext(ctx aws.Context, input *List return p.Err() } -const opListManagedEndpoints = "ListManagedEndpoints" +const opListJobTemplates = "ListJobTemplates" -// ListManagedEndpointsRequest generates a "aws/request.Request" representing the -// client's request for the ListManagedEndpoints operation. The "output" return +// ListJobTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the ListJobTemplates 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 ListManagedEndpoints for more information on using the ListManagedEndpoints +// See ListJobTemplates for more information on using the ListJobTemplates // 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 ListManagedEndpointsRequest method. -// req, resp := client.ListManagedEndpointsRequest(params) +// // Example sending a request using the ListJobTemplatesRequest method. +// req, resp := client.ListJobTemplatesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListManagedEndpoints -func (c *EMRContainers) ListManagedEndpointsRequest(input *ListManagedEndpointsInput) (req *request.Request, output *ListManagedEndpointsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListJobTemplates +func (c *EMRContainers) ListJobTemplatesRequest(input *ListJobTemplatesInput) (req *request.Request, output *ListJobTemplatesOutput) { op := &request.Operation{ - Name: opListManagedEndpoints, + Name: opListJobTemplates, HTTPMethod: "GET", - HTTPPath: "/virtualclusters/{virtualClusterId}/endpoints", + HTTPPath: "/jobtemplates", Paginator: &request.Paginator{ InputTokens: []string{"nextToken"}, OutputTokens: []string{"nextToken"}, @@ -888,26 +1150,27 @@ func (c *EMRContainers) ListManagedEndpointsRequest(input *ListManagedEndpointsI } if input == nil { - input = &ListManagedEndpointsInput{} + input = &ListJobTemplatesInput{} } - output = &ListManagedEndpointsOutput{} + output = &ListJobTemplatesOutput{} req = c.newRequest(op, input, output) return } -// ListManagedEndpoints API operation for Amazon EMR Containers. +// ListJobTemplates API operation for Amazon EMR Containers. // -// Lists managed endpoints based on a set of parameters. A managed endpoint -// is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio -// can communicate with your virtual cluster. +// Lists job templates based on a set of parameters. Job template stores values +// of StartJobRun API request in a template and can be used to start a job run. +// Job template allows two use cases: avoid repeating recurring StartJobRun +// API request values, enforcing certain values in StartJobRun API request. // // 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 Amazon EMR Containers's -// API operation ListManagedEndpoints for usage and error information. +// API operation ListJobTemplates for usage and error information. // // Returned Error Types: // @@ -917,64 +1180,64 @@ func (c *EMRContainers) ListManagedEndpointsRequest(input *ListManagedEndpointsI // - InternalServerException // This is an internal server exception. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListManagedEndpoints -func (c *EMRContainers) ListManagedEndpoints(input *ListManagedEndpointsInput) (*ListManagedEndpointsOutput, error) { - req, out := c.ListManagedEndpointsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListJobTemplates +func (c *EMRContainers) ListJobTemplates(input *ListJobTemplatesInput) (*ListJobTemplatesOutput, error) { + req, out := c.ListJobTemplatesRequest(input) return out, req.Send() } -// ListManagedEndpointsWithContext is the same as ListManagedEndpoints with the addition of +// ListJobTemplatesWithContext is the same as ListJobTemplates with the addition of // the ability to pass a context and additional request options. // -// See ListManagedEndpoints for details on how to use this API operation. +// See ListJobTemplates 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 *EMRContainers) ListManagedEndpointsWithContext(ctx aws.Context, input *ListManagedEndpointsInput, opts ...request.Option) (*ListManagedEndpointsOutput, error) { - req, out := c.ListManagedEndpointsRequest(input) +func (c *EMRContainers) ListJobTemplatesWithContext(ctx aws.Context, input *ListJobTemplatesInput, opts ...request.Option) (*ListJobTemplatesOutput, error) { + req, out := c.ListJobTemplatesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListManagedEndpointsPages iterates over the pages of a ListManagedEndpoints operation, +// ListJobTemplatesPages iterates over the pages of a ListJobTemplates operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListManagedEndpoints method for more information on how to use this operation. +// See ListJobTemplates method for more information on how to use this operation. // // Note: This operation can generate multiple requests to a service. // -// // Example iterating over at most 3 pages of a ListManagedEndpoints operation. +// // Example iterating over at most 3 pages of a ListJobTemplates operation. // pageNum := 0 -// err := client.ListManagedEndpointsPages(params, -// func(page *emrcontainers.ListManagedEndpointsOutput, lastPage bool) bool { +// err := client.ListJobTemplatesPages(params, +// func(page *emrcontainers.ListJobTemplatesOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *EMRContainers) ListManagedEndpointsPages(input *ListManagedEndpointsInput, fn func(*ListManagedEndpointsOutput, bool) bool) error { - return c.ListManagedEndpointsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *EMRContainers) ListJobTemplatesPages(input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool) error { + return c.ListJobTemplatesPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListManagedEndpointsPagesWithContext same as ListManagedEndpointsPages except +// ListJobTemplatesPagesWithContext same as ListJobTemplatesPages except // it takes a Context and allows setting request options on the pages. // // 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 *EMRContainers) ListManagedEndpointsPagesWithContext(ctx aws.Context, input *ListManagedEndpointsInput, fn func(*ListManagedEndpointsOutput, bool) bool, opts ...request.Option) error { +func (c *EMRContainers) ListJobTemplatesPagesWithContext(ctx aws.Context, input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListManagedEndpointsInput + var inCpy *ListJobTemplatesInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListManagedEndpointsRequest(inCpy) + req, _ := c.ListJobTemplatesRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -982,7 +1245,7 @@ func (c *EMRContainers) ListManagedEndpointsPagesWithContext(ctx aws.Context, in } for p.Next() { - if !fn(p.Page().(*ListManagedEndpointsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListJobTemplatesOutput), !p.HasNextPage()) { break } } @@ -990,50 +1253,191 @@ func (c *EMRContainers) ListManagedEndpointsPagesWithContext(ctx aws.Context, in return p.Err() } -const opListTagsForResource = "ListTagsForResource" +const opListManagedEndpoints = "ListManagedEndpoints" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// ListManagedEndpointsRequest generates a "aws/request.Request" representing the +// client's request for the ListManagedEndpoints 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 ListTagsForResource for more information on using the ListTagsForResource +// See ListManagedEndpoints for more information on using the ListManagedEndpoints // 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 ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) +// // Example sending a request using the ListManagedEndpointsRequest method. +// req, resp := client.ListManagedEndpointsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListTagsForResource -func (c *EMRContainers) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListManagedEndpoints +func (c *EMRContainers) ListManagedEndpointsRequest(input *ListManagedEndpointsInput) (req *request.Request, output *ListManagedEndpointsOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opListManagedEndpoints, HTTPMethod: "GET", - HTTPPath: "/tags/{resourceArn}", + HTTPPath: "/virtualclusters/{virtualClusterId}/endpoints", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &ListTagsForResourceInput{} + input = &ListManagedEndpointsInput{} } - output = &ListTagsForResourceOutput{} + output = &ListManagedEndpointsOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for Amazon EMR Containers. -// -// Lists the tags assigned to the resources. +// ListManagedEndpoints API operation for Amazon EMR Containers. +// +// Lists managed endpoints based on a set of parameters. A managed endpoint +// is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio +// can communicate with your virtual cluster. +// +// 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 Amazon EMR Containers's +// API operation ListManagedEndpoints for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// There are invalid parameters in the client request. +// +// - InternalServerException +// This is an internal server exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListManagedEndpoints +func (c *EMRContainers) ListManagedEndpoints(input *ListManagedEndpointsInput) (*ListManagedEndpointsOutput, error) { + req, out := c.ListManagedEndpointsRequest(input) + return out, req.Send() +} + +// ListManagedEndpointsWithContext is the same as ListManagedEndpoints with the addition of +// the ability to pass a context and additional request options. +// +// See ListManagedEndpoints 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 *EMRContainers) ListManagedEndpointsWithContext(ctx aws.Context, input *ListManagedEndpointsInput, opts ...request.Option) (*ListManagedEndpointsOutput, error) { + req, out := c.ListManagedEndpointsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListManagedEndpointsPages iterates over the pages of a ListManagedEndpoints operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListManagedEndpoints method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListManagedEndpoints operation. +// pageNum := 0 +// err := client.ListManagedEndpointsPages(params, +// func(page *emrcontainers.ListManagedEndpointsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EMRContainers) ListManagedEndpointsPages(input *ListManagedEndpointsInput, fn func(*ListManagedEndpointsOutput, bool) bool) error { + return c.ListManagedEndpointsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListManagedEndpointsPagesWithContext same as ListManagedEndpointsPages except +// it takes a Context and allows setting request options on the pages. +// +// 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 *EMRContainers) ListManagedEndpointsPagesWithContext(ctx aws.Context, input *ListManagedEndpointsInput, fn func(*ListManagedEndpointsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListManagedEndpointsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListManagedEndpointsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListManagedEndpointsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource +// 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 ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/emr-containers-2020-10-01/ListTagsForResource +func (c *EMRContainers) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon EMR Containers. +// +// Lists the tags assigned to the resources. // // 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 @@ -1974,6 +2378,165 @@ func (s *ContainerProvider) SetType(v string) *ContainerProvider { return s } +type CreateJobTemplateInput struct { + _ struct{} `type:"structure"` + + // The client token of the job template. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The job template data which holds values of StartJobRun API request. + // + // JobTemplateData is a required field + JobTemplateData *JobTemplateData `locationName:"jobTemplateData" type:"structure" required:"true"` + + // The KMS key ARN used to encrypt the job template. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"3" type:"string"` + + // The specified name of the job template. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The tags that are associated with the job template. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// 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 CreateJobTemplateInput) 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 CreateJobTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateJobTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.JobTemplateData == nil { + invalidParams.Add(request.NewErrParamRequired("JobTemplateData")) + } + if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 3 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 3)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.JobTemplateData != nil { + if err := s.JobTemplateData.Validate(); err != nil { + invalidParams.AddNested("JobTemplateData", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateJobTemplateInput) SetClientToken(v string) *CreateJobTemplateInput { + s.ClientToken = &v + return s +} + +// SetJobTemplateData sets the JobTemplateData field's value. +func (s *CreateJobTemplateInput) SetJobTemplateData(v *JobTemplateData) *CreateJobTemplateInput { + s.JobTemplateData = v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *CreateJobTemplateInput) SetKmsKeyArn(v string) *CreateJobTemplateInput { + s.KmsKeyArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateJobTemplateInput) SetName(v string) *CreateJobTemplateInput { + s.Name = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateJobTemplateInput) SetTags(v map[string]*string) *CreateJobTemplateInput { + s.Tags = v + return s +} + +type CreateJobTemplateOutput struct { + _ struct{} `type:"structure"` + + // This output display the ARN of the created job template. + Arn *string `locationName:"arn" min:"60" type:"string"` + + // This output displays the date and time when the job template was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"` + + // This output display the created job template ID. + Id *string `locationName:"id" min:"1" type:"string"` + + // This output displays the name of the created job template. + Name *string `locationName:"name" min:"1" 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 CreateJobTemplateOutput) 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 CreateJobTemplateOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *CreateJobTemplateOutput) SetArn(v string) *CreateJobTemplateOutput { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateJobTemplateOutput) SetCreatedAt(v time.Time) *CreateJobTemplateOutput { + s.CreatedAt = &v + return s +} + +// SetId sets the Id field's value. +func (s *CreateJobTemplateOutput) SetId(v string) *CreateJobTemplateOutput { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateJobTemplateOutput) SetName(v string) *CreateJobTemplateOutput { + s.Name = &v + return s +} + type CreateManagedEndpointInput struct { _ struct{} `type:"structure"` @@ -2337,6 +2900,86 @@ func (s *CreateVirtualClusterOutput) SetName(v string) *CreateVirtualClusterOutp return s } +type DeleteJobTemplateInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the job template that will be deleted. + // + // Id is a required field + Id *string `location:"uri" locationName:"templateId" min:"1" 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 DeleteJobTemplateInput) 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 DeleteJobTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteJobTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *DeleteJobTemplateInput) SetId(v string) *DeleteJobTemplateInput { + s.Id = &v + return s +} + +type DeleteJobTemplateOutput struct { + _ struct{} `type:"structure"` + + // This output contains the ID of the job template that was deleted. + Id *string `locationName:"id" min:"1" 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 DeleteJobTemplateOutput) 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 DeleteJobTemplateOutput) GoString() string { + return s.String() +} + +// SetId sets the Id field's value. +func (s *DeleteJobTemplateOutput) SetId(v string) *DeleteJobTemplateOutput { + s.Id = &v + return s +} + type DeleteManagedEndpointInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -2620,6 +3263,86 @@ func (s *DescribeJobRunOutput) SetJobRun(v *JobRun) *DescribeJobRunOutput { return s } +type DescribeJobTemplateInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the job template that will be described. + // + // Id is a required field + Id *string `location:"uri" locationName:"templateId" min:"1" 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 DescribeJobTemplateInput) 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 DescribeJobTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeJobTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *DescribeJobTemplateInput) SetId(v string) *DescribeJobTemplateInput { + s.Id = &v + return s +} + +type DescribeJobTemplateOutput struct { + _ struct{} `type:"structure"` + + // This output displays information about the specified job template. + JobTemplate *JobTemplate `locationName:"jobTemplate" 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 DescribeJobTemplateOutput) 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 DescribeJobTemplateOutput) GoString() string { + return s.String() +} + +// SetJobTemplate sets the JobTemplate field's value. +func (s *DescribeJobTemplateOutput) SetJobTemplate(v *JobTemplate) *DescribeJobTemplateOutput { + s.JobTemplate = v + return s +} + type DescribeManagedEndpointInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -3096,7 +3819,8 @@ func (s *InternalServerException) RequestID() string { return s.RespMetadata.RequestID } -// Specify the driver that the job runs on. +// Specify the driver that the job runs on. Exactly one of the two available +// job drivers is required, either sparkSqlJobDriver or sparkSubmitJobDriver. type JobDriver struct { _ struct{} `type:"structure"` @@ -3326,31 +4050,41 @@ func (s *JobRun) SetVirtualClusterId(v string) *JobRun { return s } -type ListJobRunsInput struct { - _ struct{} `type:"structure" nopayload:"true"` - - // The date and time after which the job runs were submitted. - CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` +// This entity describes a job template. Job template stores values of StartJobRun +// API request in a template and can be used to start a job run. Job template +// allows two use cases: avoid repeating recurring StartJobRun API request values, +// enforcing certain values in StartJobRun API request. +type JobTemplate struct { + _ struct{} `type:"structure"` - // The date and time before which the job runs were submitted. - CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` + // The ARN of the job template. + Arn *string `locationName:"arn" min:"60" type:"string"` - // The maximum number of job runs that can be listed. - MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + // The date and time when the job template was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"` - // The name of the job run. - Name *string `location:"querystring" locationName:"name" min:"1" type:"string"` + // The user who created the job template. + CreatedBy *string `locationName:"createdBy" min:"20" type:"string"` - // The token for the next set of job runs to return. - NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + // The error message in case the decryption of job template fails. + DecryptionError *string `locationName:"decryptionError" min:"1" type:"string"` - // The states of the job run. - States []*string `location:"querystring" locationName:"states" type:"list" enum:"JobRunState"` + // The ID of the job template. + Id *string `locationName:"id" min:"1" type:"string"` - // The ID of the virtual cluster for which to list the job run. + // The job template data which holds values of StartJobRun API request. // - // VirtualClusterId is a required field - VirtualClusterId *string `location:"uri" locationName:"virtualClusterId" min:"1" type:"string" required:"true"` + // JobTemplateData is a required field + JobTemplateData *JobTemplateData `locationName:"jobTemplateData" type:"structure" required:"true"` + + // The KMS key ARN used to encrypt the job template. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"3" type:"string"` + + // The name of the job template. + Name *string `locationName:"name" min:"1" type:"string"` + + // The tags assigned to the job template. + Tags map[string]*string `locationName:"tags" type:"map"` } // String returns the string representation. @@ -3358,7 +4092,7 @@ type ListJobRunsInput struct { // 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 ListJobRunsInput) String() string { +func (s JobTemplate) String() string { return awsutil.Prettify(s) } @@ -3367,82 +4101,93 @@ func (s ListJobRunsInput) String() string { // 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 ListJobRunsInput) GoString() string { +func (s JobTemplate) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListJobRunsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListJobRunsInput"} - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) - } - if s.VirtualClusterId == nil { - invalidParams.Add(request.NewErrParamRequired("VirtualClusterId")) - } - if s.VirtualClusterId != nil && len(*s.VirtualClusterId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("VirtualClusterId", 1)) - } +// SetArn sets the Arn field's value. +func (s *JobTemplate) SetArn(v string) *JobTemplate { + s.Arn = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetCreatedAt sets the CreatedAt field's value. +func (s *JobTemplate) SetCreatedAt(v time.Time) *JobTemplate { + s.CreatedAt = &v + return s } -// SetCreatedAfter sets the CreatedAfter field's value. -func (s *ListJobRunsInput) SetCreatedAfter(v time.Time) *ListJobRunsInput { - s.CreatedAfter = &v +// SetCreatedBy sets the CreatedBy field's value. +func (s *JobTemplate) SetCreatedBy(v string) *JobTemplate { + s.CreatedBy = &v return s } -// SetCreatedBefore sets the CreatedBefore field's value. -func (s *ListJobRunsInput) SetCreatedBefore(v time.Time) *ListJobRunsInput { - s.CreatedBefore = &v +// SetDecryptionError sets the DecryptionError field's value. +func (s *JobTemplate) SetDecryptionError(v string) *JobTemplate { + s.DecryptionError = &v return s } -// SetMaxResults sets the MaxResults field's value. -func (s *ListJobRunsInput) SetMaxResults(v int64) *ListJobRunsInput { - s.MaxResults = &v +// SetId sets the Id field's value. +func (s *JobTemplate) SetId(v string) *JobTemplate { + s.Id = &v return s } -// SetName sets the Name field's value. -func (s *ListJobRunsInput) SetName(v string) *ListJobRunsInput { - s.Name = &v +// SetJobTemplateData sets the JobTemplateData field's value. +func (s *JobTemplate) SetJobTemplateData(v *JobTemplateData) *JobTemplate { + s.JobTemplateData = v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListJobRunsInput) SetNextToken(v string) *ListJobRunsInput { - s.NextToken = &v +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *JobTemplate) SetKmsKeyArn(v string) *JobTemplate { + s.KmsKeyArn = &v return s } -// SetStates sets the States field's value. -func (s *ListJobRunsInput) SetStates(v []*string) *ListJobRunsInput { - s.States = v +// SetName sets the Name field's value. +func (s *JobTemplate) SetName(v string) *JobTemplate { + s.Name = &v return s } -// SetVirtualClusterId sets the VirtualClusterId field's value. -func (s *ListJobRunsInput) SetVirtualClusterId(v string) *ListJobRunsInput { - s.VirtualClusterId = &v +// SetTags sets the Tags field's value. +func (s *JobTemplate) SetTags(v map[string]*string) *JobTemplate { + s.Tags = v return s } -type ListJobRunsOutput struct { +// The values of StartJobRun API requests used in job runs started using the +// job template. +type JobTemplateData struct { _ struct{} `type:"structure"` - // This output lists information about the specified job runs. - JobRuns []*JobRun `locationName:"jobRuns" type:"list"` + // The configuration settings that are used to override defaults configuration. + ConfigurationOverrides *ParametricConfigurationOverrides `locationName:"configurationOverrides" type:"structure"` - // This output displays the token for the next set of job runs. - NextToken *string `locationName:"nextToken" min:"1" type:"string"` + // The execution role ARN of the job run. + // + // ExecutionRoleArn is a required field + ExecutionRoleArn *string `locationName:"executionRoleArn" min:"4" type:"string" required:"true"` + + // Specify the driver that the job runs on. Exactly one of the two available + // job drivers is required, either sparkSqlJobDriver or sparkSubmitJobDriver. + // + // JobDriver is a required field + JobDriver *JobDriver `locationName:"jobDriver" type:"structure" required:"true"` + + // The tags assigned to jobs started using the job template. + JobTags map[string]*string `locationName:"jobTags" type:"map"` + + // The configuration of parameters existing in the job template. + ParameterConfiguration map[string]*TemplateParameterConfiguration `locationName:"parameterConfiguration" type:"map"` + + // The release version of Amazon EMR. + // + // ReleaseLabel is a required field + ReleaseLabel *string `locationName:"releaseLabel" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -3450,7 +4195,7 @@ type ListJobRunsOutput struct { // 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 ListJobRunsOutput) String() string { +func (s JobTemplateData) String() string { return awsutil.Prettify(s) } @@ -3459,29 +4204,358 @@ func (s ListJobRunsOutput) String() string { // 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 ListJobRunsOutput) GoString() string { +func (s JobTemplateData) GoString() string { return s.String() } -// SetJobRuns sets the JobRuns field's value. -func (s *ListJobRunsOutput) SetJobRuns(v []*JobRun) *ListJobRunsOutput { - s.JobRuns = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListJobRunsOutput) SetNextToken(v string) *ListJobRunsOutput { - s.NextToken = &v - return s -} - -type ListManagedEndpointsInput struct { - _ struct{} `type:"structure" nopayload:"true"` - - // The date and time after which the endpoints are created. - CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` - - // The date and time before which the endpoints are created. +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobTemplateData) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobTemplateData"} + if s.ExecutionRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExecutionRoleArn")) + } + if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 4 { + invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 4)) + } + if s.JobDriver == nil { + invalidParams.Add(request.NewErrParamRequired("JobDriver")) + } + if s.ReleaseLabel == nil { + invalidParams.Add(request.NewErrParamRequired("ReleaseLabel")) + } + if s.ReleaseLabel != nil && len(*s.ReleaseLabel) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ReleaseLabel", 1)) + } + if s.ConfigurationOverrides != nil { + if err := s.ConfigurationOverrides.Validate(); err != nil { + invalidParams.AddNested("ConfigurationOverrides", err.(request.ErrInvalidParams)) + } + } + if s.JobDriver != nil { + if err := s.JobDriver.Validate(); err != nil { + invalidParams.AddNested("JobDriver", err.(request.ErrInvalidParams)) + } + } + if s.ParameterConfiguration != nil { + for i, v := range s.ParameterConfiguration { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterConfiguration", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfigurationOverrides sets the ConfigurationOverrides field's value. +func (s *JobTemplateData) SetConfigurationOverrides(v *ParametricConfigurationOverrides) *JobTemplateData { + s.ConfigurationOverrides = v + return s +} + +// SetExecutionRoleArn sets the ExecutionRoleArn field's value. +func (s *JobTemplateData) SetExecutionRoleArn(v string) *JobTemplateData { + s.ExecutionRoleArn = &v + return s +} + +// SetJobDriver sets the JobDriver field's value. +func (s *JobTemplateData) SetJobDriver(v *JobDriver) *JobTemplateData { + s.JobDriver = v + return s +} + +// SetJobTags sets the JobTags field's value. +func (s *JobTemplateData) SetJobTags(v map[string]*string) *JobTemplateData { + s.JobTags = v + return s +} + +// SetParameterConfiguration sets the ParameterConfiguration field's value. +func (s *JobTemplateData) SetParameterConfiguration(v map[string]*TemplateParameterConfiguration) *JobTemplateData { + s.ParameterConfiguration = v + return s +} + +// SetReleaseLabel sets the ReleaseLabel field's value. +func (s *JobTemplateData) SetReleaseLabel(v string) *JobTemplateData { + s.ReleaseLabel = &v + return s +} + +type ListJobRunsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The date and time after which the job runs were submitted. + CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` + + // The date and time before which the job runs were submitted. + CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` + + // The maximum number of job runs that can be listed. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // The name of the job run. + Name *string `location:"querystring" locationName:"name" min:"1" type:"string"` + + // The token for the next set of job runs to return. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The states of the job run. + States []*string `location:"querystring" locationName:"states" type:"list" enum:"JobRunState"` + + // The ID of the virtual cluster for which to list the job run. + // + // VirtualClusterId is a required field + VirtualClusterId *string `location:"uri" locationName:"virtualClusterId" min:"1" 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 ListJobRunsInput) 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 ListJobRunsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListJobRunsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListJobRunsInput"} + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.VirtualClusterId == nil { + invalidParams.Add(request.NewErrParamRequired("VirtualClusterId")) + } + if s.VirtualClusterId != nil && len(*s.VirtualClusterId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VirtualClusterId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCreatedAfter sets the CreatedAfter field's value. +func (s *ListJobRunsInput) SetCreatedAfter(v time.Time) *ListJobRunsInput { + s.CreatedAfter = &v + return s +} + +// SetCreatedBefore sets the CreatedBefore field's value. +func (s *ListJobRunsInput) SetCreatedBefore(v time.Time) *ListJobRunsInput { + s.CreatedBefore = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListJobRunsInput) SetMaxResults(v int64) *ListJobRunsInput { + s.MaxResults = &v + return s +} + +// SetName sets the Name field's value. +func (s *ListJobRunsInput) SetName(v string) *ListJobRunsInput { + s.Name = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListJobRunsInput) SetNextToken(v string) *ListJobRunsInput { + s.NextToken = &v + return s +} + +// SetStates sets the States field's value. +func (s *ListJobRunsInput) SetStates(v []*string) *ListJobRunsInput { + s.States = v + return s +} + +// SetVirtualClusterId sets the VirtualClusterId field's value. +func (s *ListJobRunsInput) SetVirtualClusterId(v string) *ListJobRunsInput { + s.VirtualClusterId = &v + return s +} + +type ListJobRunsOutput struct { + _ struct{} `type:"structure"` + + // This output lists information about the specified job runs. + JobRuns []*JobRun `locationName:"jobRuns" type:"list"` + + // This output displays the token for the next set of job runs. + NextToken *string `locationName:"nextToken" min:"1" 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 ListJobRunsOutput) 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 ListJobRunsOutput) GoString() string { + return s.String() +} + +// SetJobRuns sets the JobRuns field's value. +func (s *ListJobRunsOutput) SetJobRuns(v []*JobRun) *ListJobRunsOutput { + s.JobRuns = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListJobRunsOutput) SetNextToken(v string) *ListJobRunsOutput { + s.NextToken = &v + return s +} + +type ListJobTemplatesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The date and time after which the job templates were created. + CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` + + // The date and time before which the job templates were created. + CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` + + // The maximum number of job templates that can be listed. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // The token for the next set of job templates to return. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" 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 ListJobTemplatesInput) 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 ListJobTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListJobTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCreatedAfter sets the CreatedAfter field's value. +func (s *ListJobTemplatesInput) SetCreatedAfter(v time.Time) *ListJobTemplatesInput { + s.CreatedAfter = &v + return s +} + +// SetCreatedBefore sets the CreatedBefore field's value. +func (s *ListJobTemplatesInput) SetCreatedBefore(v time.Time) *ListJobTemplatesInput { + s.CreatedBefore = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput { + s.NextToken = &v + return s +} + +type ListJobTemplatesOutput struct { + _ struct{} `type:"structure"` + + // This output displays the token for the next set of job templates. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // This output lists information about the specified job templates. + Templates []*JobTemplate `locationName:"templates" type:"list"` +} + +// 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 ListJobTemplatesOutput) 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 ListJobTemplatesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput { + s.NextToken = &v + return s +} + +// SetTemplates sets the Templates field's value. +func (s *ListJobTemplatesOutput) SetTemplates(v []*JobTemplate) *ListJobTemplatesOutput { + s.Templates = v + return s +} + +type ListManagedEndpointsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The date and time after which the endpoints are created. + CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` + + // The date and time before which the endpoints are created. CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` // The maximum number of managed endpoints that can be listed. @@ -3701,30 +4775,229 @@ func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForRe return s } -type ListVirtualClustersInput struct { - _ struct{} `type:"structure" nopayload:"true"` - - // The container provider ID of the virtual cluster. - ContainerProviderId *string `location:"querystring" locationName:"containerProviderId" min:"1" type:"string"` - - // The container provider type of the virtual cluster. EKS is the only supported - // type as of now. - ContainerProviderType *string `location:"querystring" locationName:"containerProviderType" type:"string" enum:"ContainerProviderType"` - - // The date and time after which the virtual clusters are created. - CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` +type ListVirtualClustersInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The container provider ID of the virtual cluster. + ContainerProviderId *string `location:"querystring" locationName:"containerProviderId" min:"1" type:"string"` + + // The container provider type of the virtual cluster. EKS is the only supported + // type as of now. + ContainerProviderType *string `location:"querystring" locationName:"containerProviderType" type:"string" enum:"ContainerProviderType"` + + // The date and time after which the virtual clusters are created. + CreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp" timestampFormat:"iso8601"` + + // The date and time before which the virtual clusters are created. + CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` + + // The maximum number of virtual clusters that can be listed. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // The token for the next set of virtual clusters to return. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The states of the requested virtual clusters. + States []*string `location:"querystring" locationName:"states" type:"list" enum:"VirtualClusterState"` +} + +// 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 ListVirtualClustersInput) 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 ListVirtualClustersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListVirtualClustersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListVirtualClustersInput"} + if s.ContainerProviderId != nil && len(*s.ContainerProviderId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContainerProviderId", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerProviderId sets the ContainerProviderId field's value. +func (s *ListVirtualClustersInput) SetContainerProviderId(v string) *ListVirtualClustersInput { + s.ContainerProviderId = &v + return s +} + +// SetContainerProviderType sets the ContainerProviderType field's value. +func (s *ListVirtualClustersInput) SetContainerProviderType(v string) *ListVirtualClustersInput { + s.ContainerProviderType = &v + return s +} + +// SetCreatedAfter sets the CreatedAfter field's value. +func (s *ListVirtualClustersInput) SetCreatedAfter(v time.Time) *ListVirtualClustersInput { + s.CreatedAfter = &v + return s +} + +// SetCreatedBefore sets the CreatedBefore field's value. +func (s *ListVirtualClustersInput) SetCreatedBefore(v time.Time) *ListVirtualClustersInput { + s.CreatedBefore = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListVirtualClustersInput) SetMaxResults(v int64) *ListVirtualClustersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListVirtualClustersInput) SetNextToken(v string) *ListVirtualClustersInput { + s.NextToken = &v + return s +} + +// SetStates sets the States field's value. +func (s *ListVirtualClustersInput) SetStates(v []*string) *ListVirtualClustersInput { + s.States = v + return s +} + +type ListVirtualClustersOutput struct { + _ struct{} `type:"structure"` + + // This output displays the token for the next set of virtual clusters. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // This output lists the specified virtual clusters. + VirtualClusters []*VirtualCluster `locationName:"virtualClusters" type:"list"` +} + +// 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 ListVirtualClustersOutput) 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 ListVirtualClustersOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListVirtualClustersOutput) SetNextToken(v string) *ListVirtualClustersOutput { + s.NextToken = &v + return s +} + +// SetVirtualClusters sets the VirtualClusters field's value. +func (s *ListVirtualClustersOutput) SetVirtualClusters(v []*VirtualCluster) *ListVirtualClustersOutput { + s.VirtualClusters = v + return s +} + +// Configuration setting for monitoring. +type MonitoringConfiguration struct { + _ struct{} `type:"structure"` + + // Monitoring configurations for CloudWatch. + CloudWatchMonitoringConfiguration *CloudWatchMonitoringConfiguration `locationName:"cloudWatchMonitoringConfiguration" type:"structure"` + + // Monitoring configurations for the persistent application UI. + PersistentAppUI *string `locationName:"persistentAppUI" type:"string" enum:"PersistentAppUI"` + + // Amazon S3 configuration for monitoring log publishing. + S3MonitoringConfiguration *S3MonitoringConfiguration `locationName:"s3MonitoringConfiguration" 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 MonitoringConfiguration) 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 MonitoringConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MonitoringConfiguration"} + if s.CloudWatchMonitoringConfiguration != nil { + if err := s.CloudWatchMonitoringConfiguration.Validate(); err != nil { + invalidParams.AddNested("CloudWatchMonitoringConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.S3MonitoringConfiguration != nil { + if err := s.S3MonitoringConfiguration.Validate(); err != nil { + invalidParams.AddNested("S3MonitoringConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCloudWatchMonitoringConfiguration sets the CloudWatchMonitoringConfiguration field's value. +func (s *MonitoringConfiguration) SetCloudWatchMonitoringConfiguration(v *CloudWatchMonitoringConfiguration) *MonitoringConfiguration { + s.CloudWatchMonitoringConfiguration = v + return s +} + +// SetPersistentAppUI sets the PersistentAppUI field's value. +func (s *MonitoringConfiguration) SetPersistentAppUI(v string) *MonitoringConfiguration { + s.PersistentAppUI = &v + return s +} - // The date and time before which the virtual clusters are created. - CreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp" timestampFormat:"iso8601"` +// SetS3MonitoringConfiguration sets the S3MonitoringConfiguration field's value. +func (s *MonitoringConfiguration) SetS3MonitoringConfiguration(v *S3MonitoringConfiguration) *MonitoringConfiguration { + s.S3MonitoringConfiguration = v + return s +} - // The maximum number of virtual clusters that can be listed. - MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` +// A configuration for CloudWatch monitoring. You can configure your jobs to +// send log information to CloudWatch Logs. This data type allows job template +// parameters to be specified within. +type ParametricCloudWatchMonitoringConfiguration struct { + _ struct{} `type:"structure"` - // The token for the next set of virtual clusters to return. - NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + // The name of the log group for log publishing. + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"` - // The states of the requested virtual clusters. - States []*string `location:"querystring" locationName:"states" type:"list" enum:"VirtualClusterState"` + // The specified name prefix for log streams. + LogStreamNamePrefix *string `locationName:"logStreamNamePrefix" min:"1" type:"string"` } // String returns the string representation. @@ -3732,7 +5005,7 @@ type ListVirtualClustersInput struct { // 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 ListVirtualClustersInput) String() string { +func (s ParametricCloudWatchMonitoringConfiguration) String() string { return awsutil.Prettify(s) } @@ -3741,18 +5014,18 @@ func (s ListVirtualClustersInput) String() string { // 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 ListVirtualClustersInput) GoString() string { +func (s ParametricCloudWatchMonitoringConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListVirtualClustersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListVirtualClustersInput"} - if s.ContainerProviderId != nil && len(*s.ContainerProviderId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ContainerProviderId", 1)) +func (s *ParametricCloudWatchMonitoringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ParametricCloudWatchMonitoringConfiguration"} + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) } - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + if s.LogStreamNamePrefix != nil && len(*s.LogStreamNamePrefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogStreamNamePrefix", 1)) } if invalidParams.Len() > 0 { @@ -3761,56 +5034,28 @@ func (s *ListVirtualClustersInput) Validate() error { return nil } -// SetContainerProviderId sets the ContainerProviderId field's value. -func (s *ListVirtualClustersInput) SetContainerProviderId(v string) *ListVirtualClustersInput { - s.ContainerProviderId = &v - return s -} - -// SetContainerProviderType sets the ContainerProviderType field's value. -func (s *ListVirtualClustersInput) SetContainerProviderType(v string) *ListVirtualClustersInput { - s.ContainerProviderType = &v - return s -} - -// SetCreatedAfter sets the CreatedAfter field's value. -func (s *ListVirtualClustersInput) SetCreatedAfter(v time.Time) *ListVirtualClustersInput { - s.CreatedAfter = &v - return s -} - -// SetCreatedBefore sets the CreatedBefore field's value. -func (s *ListVirtualClustersInput) SetCreatedBefore(v time.Time) *ListVirtualClustersInput { - s.CreatedBefore = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListVirtualClustersInput) SetMaxResults(v int64) *ListVirtualClustersInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListVirtualClustersInput) SetNextToken(v string) *ListVirtualClustersInput { - s.NextToken = &v +// SetLogGroupName sets the LogGroupName field's value. +func (s *ParametricCloudWatchMonitoringConfiguration) SetLogGroupName(v string) *ParametricCloudWatchMonitoringConfiguration { + s.LogGroupName = &v return s } -// SetStates sets the States field's value. -func (s *ListVirtualClustersInput) SetStates(v []*string) *ListVirtualClustersInput { - s.States = v +// SetLogStreamNamePrefix sets the LogStreamNamePrefix field's value. +func (s *ParametricCloudWatchMonitoringConfiguration) SetLogStreamNamePrefix(v string) *ParametricCloudWatchMonitoringConfiguration { + s.LogStreamNamePrefix = &v return s } -type ListVirtualClustersOutput struct { +// A configuration specification to be used to override existing configurations. +// This data type allows job template parameters to be specified within. +type ParametricConfigurationOverrides struct { _ struct{} `type:"structure"` - // This output displays the token for the next set of virtual clusters. - NextToken *string `locationName:"nextToken" min:"1" type:"string"` + // The configurations for the application running by the job run. + ApplicationConfiguration []*Configuration `locationName:"applicationConfiguration" type:"list"` - // This output lists the specified virtual clusters. - VirtualClusters []*VirtualCluster `locationName:"virtualClusters" type:"list"` + // The configurations for monitoring. + MonitoringConfiguration *ParametricMonitoringConfiguration `locationName:"monitoringConfiguration" type:"structure"` } // String returns the string representation. @@ -3818,7 +5063,7 @@ type ListVirtualClustersOutput struct { // 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 ListVirtualClustersOutput) String() string { +func (s ParametricConfigurationOverrides) String() string { return awsutil.Prettify(s) } @@ -3827,34 +5072,60 @@ func (s ListVirtualClustersOutput) String() string { // 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 ListVirtualClustersOutput) GoString() string { +func (s ParametricConfigurationOverrides) GoString() string { return s.String() } -// SetNextToken sets the NextToken field's value. -func (s *ListVirtualClustersOutput) SetNextToken(v string) *ListVirtualClustersOutput { - s.NextToken = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParametricConfigurationOverrides) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ParametricConfigurationOverrides"} + if s.ApplicationConfiguration != nil { + for i, v := range s.ApplicationConfiguration { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ApplicationConfiguration", i), err.(request.ErrInvalidParams)) + } + } + } + if s.MonitoringConfiguration != nil { + if err := s.MonitoringConfiguration.Validate(); err != nil { + invalidParams.AddNested("MonitoringConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationConfiguration sets the ApplicationConfiguration field's value. +func (s *ParametricConfigurationOverrides) SetApplicationConfiguration(v []*Configuration) *ParametricConfigurationOverrides { + s.ApplicationConfiguration = v return s } -// SetVirtualClusters sets the VirtualClusters field's value. -func (s *ListVirtualClustersOutput) SetVirtualClusters(v []*VirtualCluster) *ListVirtualClustersOutput { - s.VirtualClusters = v +// SetMonitoringConfiguration sets the MonitoringConfiguration field's value. +func (s *ParametricConfigurationOverrides) SetMonitoringConfiguration(v *ParametricMonitoringConfiguration) *ParametricConfigurationOverrides { + s.MonitoringConfiguration = v return s } -// Configuration setting for monitoring. -type MonitoringConfiguration struct { +// Configuration setting for monitoring. This data type allows job template +// parameters to be specified within. +type ParametricMonitoringConfiguration struct { _ struct{} `type:"structure"` // Monitoring configurations for CloudWatch. - CloudWatchMonitoringConfiguration *CloudWatchMonitoringConfiguration `locationName:"cloudWatchMonitoringConfiguration" type:"structure"` + CloudWatchMonitoringConfiguration *ParametricCloudWatchMonitoringConfiguration `locationName:"cloudWatchMonitoringConfiguration" type:"structure"` // Monitoring configurations for the persistent application UI. - PersistentAppUI *string `locationName:"persistentAppUI" type:"string" enum:"PersistentAppUI"` + PersistentAppUI *string `locationName:"persistentAppUI" min:"1" type:"string"` // Amazon S3 configuration for monitoring log publishing. - S3MonitoringConfiguration *S3MonitoringConfiguration `locationName:"s3MonitoringConfiguration" type:"structure"` + S3MonitoringConfiguration *ParametricS3MonitoringConfiguration `locationName:"s3MonitoringConfiguration" type:"structure"` } // String returns the string representation. @@ -3862,7 +5133,7 @@ type MonitoringConfiguration struct { // 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 MonitoringConfiguration) String() string { +func (s ParametricMonitoringConfiguration) String() string { return awsutil.Prettify(s) } @@ -3871,13 +5142,16 @@ func (s MonitoringConfiguration) String() string { // 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 MonitoringConfiguration) GoString() string { +func (s ParametricMonitoringConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *MonitoringConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MonitoringConfiguration"} +func (s *ParametricMonitoringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ParametricMonitoringConfiguration"} + if s.PersistentAppUI != nil && len(*s.PersistentAppUI) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PersistentAppUI", 1)) + } if s.CloudWatchMonitoringConfiguration != nil { if err := s.CloudWatchMonitoringConfiguration.Validate(); err != nil { invalidParams.AddNested("CloudWatchMonitoringConfiguration", err.(request.ErrInvalidParams)) @@ -3896,23 +5170,70 @@ func (s *MonitoringConfiguration) Validate() error { } // SetCloudWatchMonitoringConfiguration sets the CloudWatchMonitoringConfiguration field's value. -func (s *MonitoringConfiguration) SetCloudWatchMonitoringConfiguration(v *CloudWatchMonitoringConfiguration) *MonitoringConfiguration { +func (s *ParametricMonitoringConfiguration) SetCloudWatchMonitoringConfiguration(v *ParametricCloudWatchMonitoringConfiguration) *ParametricMonitoringConfiguration { s.CloudWatchMonitoringConfiguration = v return s } // SetPersistentAppUI sets the PersistentAppUI field's value. -func (s *MonitoringConfiguration) SetPersistentAppUI(v string) *MonitoringConfiguration { +func (s *ParametricMonitoringConfiguration) SetPersistentAppUI(v string) *ParametricMonitoringConfiguration { s.PersistentAppUI = &v return s } // SetS3MonitoringConfiguration sets the S3MonitoringConfiguration field's value. -func (s *MonitoringConfiguration) SetS3MonitoringConfiguration(v *S3MonitoringConfiguration) *MonitoringConfiguration { +func (s *ParametricMonitoringConfiguration) SetS3MonitoringConfiguration(v *ParametricS3MonitoringConfiguration) *ParametricMonitoringConfiguration { s.S3MonitoringConfiguration = v return s } +// Amazon S3 configuration for monitoring log publishing. You can configure +// your jobs to send log information to Amazon S3. This data type allows job +// template parameters to be specified within. +type ParametricS3MonitoringConfiguration struct { + _ struct{} `type:"structure"` + + // Amazon S3 destination URI for log publishing. + LogUri *string `locationName:"logUri" min:"1" 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 ParametricS3MonitoringConfiguration) 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 ParametricS3MonitoringConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParametricS3MonitoringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ParametricS3MonitoringConfiguration"} + if s.LogUri != nil && len(*s.LogUri) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogUri", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogUri sets the LogUri field's value. +func (s *ParametricS3MonitoringConfiguration) SetLogUri(v string) *ParametricS3MonitoringConfiguration { + s.LogUri = &v + return s +} + // The specified resource was not found. type ResourceNotFoundException struct { _ struct{} `type:"structure"` @@ -4182,22 +5503,22 @@ type StartJobRunInput struct { ConfigurationOverrides *ConfigurationOverrides `locationName:"configurationOverrides" type:"structure"` // The execution role ARN for the job run. - // - // ExecutionRoleArn is a required field - ExecutionRoleArn *string `locationName:"executionRoleArn" min:"20" type:"string" required:"true"` + ExecutionRoleArn *string `locationName:"executionRoleArn" min:"20" type:"string"` // The job driver for the job run. - // - // JobDriver is a required field - JobDriver *JobDriver `locationName:"jobDriver" type:"structure" required:"true"` + JobDriver *JobDriver `locationName:"jobDriver" type:"structure"` + + // The job template ID to be used to start the job run. + JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"` + + // The values of job template parameters to start a job run. + JobTemplateParameters map[string]*string `locationName:"jobTemplateParameters" type:"map"` // The name of the job run. Name *string `locationName:"name" min:"1" type:"string"` // The Amazon EMR release version to use for the job run. - // - // ReleaseLabel is a required field - ReleaseLabel *string `locationName:"releaseLabel" min:"1" type:"string" required:"true"` + ReleaseLabel *string `locationName:"releaseLabel" min:"1" type:"string"` // The tags assigned to job runs. Tags map[string]*string `locationName:"tags" type:"map"` @@ -4232,21 +5553,15 @@ func (s *StartJobRunInput) Validate() error { if s.ClientToken != nil && len(*s.ClientToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) } - if s.ExecutionRoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("ExecutionRoleArn")) - } if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 20)) } - if s.JobDriver == nil { - invalidParams.Add(request.NewErrParamRequired("JobDriver")) + if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1)) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } - if s.ReleaseLabel == nil { - invalidParams.Add(request.NewErrParamRequired("ReleaseLabel")) - } if s.ReleaseLabel != nil && len(*s.ReleaseLabel) < 1 { invalidParams.Add(request.NewErrParamMinLen("ReleaseLabel", 1)) } @@ -4297,6 +5612,18 @@ func (s *StartJobRunInput) SetJobDriver(v *JobDriver) *StartJobRunInput { return s } +// SetJobTemplateId sets the JobTemplateId field's value. +func (s *StartJobRunInput) SetJobTemplateId(v string) *StartJobRunInput { + s.JobTemplateId = &v + return s +} + +// SetJobTemplateParameters sets the JobTemplateParameters field's value. +func (s *StartJobRunInput) SetJobTemplateParameters(v map[string]*string) *StartJobRunInput { + s.JobTemplateParameters = v + return s +} + // SetName sets the Name field's value. func (s *StartJobRunInput) SetName(v string) *StartJobRunInput { s.Name = &v @@ -4464,6 +5791,61 @@ func (s TagResourceOutput) GoString() string { return s.String() } +// The configuration of a job template parameter. +type TemplateParameterConfiguration struct { + _ struct{} `type:"structure"` + + // The default value for the job template parameter. + DefaultValue *string `locationName:"defaultValue" min:"1" type:"string"` + + // The type of the job template parameter. Allowed values are: ‘String’, + // ‘Number’. + Type *string `locationName:"type" type:"string" enum:"TemplateParameterDataType"` +} + +// 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 TemplateParameterConfiguration) 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 TemplateParameterConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TemplateParameterConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TemplateParameterConfiguration"} + if s.DefaultValue != nil && len(*s.DefaultValue) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *TemplateParameterConfiguration) SetDefaultValue(v string) *TemplateParameterConfiguration { + s.DefaultValue = &v + return s +} + +// SetType sets the Type field's value. +func (s *TemplateParameterConfiguration) SetType(v string) *TemplateParameterConfiguration { + s.Type = &v + return s +} + type UntagResourceInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -4821,6 +6203,22 @@ func PersistentAppUI_Values() []string { } } +const ( + // TemplateParameterDataTypeNumber is a TemplateParameterDataType enum value + TemplateParameterDataTypeNumber = "NUMBER" + + // TemplateParameterDataTypeString is a TemplateParameterDataType enum value + TemplateParameterDataTypeString = "STRING" +) + +// TemplateParameterDataType_Values returns all elements of the TemplateParameterDataType enum +func TemplateParameterDataType_Values() []string { + return []string{ + TemplateParameterDataTypeNumber, + TemplateParameterDataTypeString, + } +} + const ( // VirtualClusterStateRunning is a VirtualClusterState enum value VirtualClusterStateRunning = "RUNNING" diff --git a/service/emrcontainers/emrcontainersiface/interface.go b/service/emrcontainers/emrcontainersiface/interface.go index 49388f88c13..0f13aee0ea5 100644 --- a/service/emrcontainers/emrcontainersiface/interface.go +++ b/service/emrcontainers/emrcontainersiface/interface.go @@ -64,6 +64,10 @@ type EMRContainersAPI interface { CancelJobRunWithContext(aws.Context, *emrcontainers.CancelJobRunInput, ...request.Option) (*emrcontainers.CancelJobRunOutput, error) CancelJobRunRequest(*emrcontainers.CancelJobRunInput) (*request.Request, *emrcontainers.CancelJobRunOutput) + CreateJobTemplate(*emrcontainers.CreateJobTemplateInput) (*emrcontainers.CreateJobTemplateOutput, error) + CreateJobTemplateWithContext(aws.Context, *emrcontainers.CreateJobTemplateInput, ...request.Option) (*emrcontainers.CreateJobTemplateOutput, error) + CreateJobTemplateRequest(*emrcontainers.CreateJobTemplateInput) (*request.Request, *emrcontainers.CreateJobTemplateOutput) + CreateManagedEndpoint(*emrcontainers.CreateManagedEndpointInput) (*emrcontainers.CreateManagedEndpointOutput, error) CreateManagedEndpointWithContext(aws.Context, *emrcontainers.CreateManagedEndpointInput, ...request.Option) (*emrcontainers.CreateManagedEndpointOutput, error) CreateManagedEndpointRequest(*emrcontainers.CreateManagedEndpointInput) (*request.Request, *emrcontainers.CreateManagedEndpointOutput) @@ -72,6 +76,10 @@ type EMRContainersAPI interface { CreateVirtualClusterWithContext(aws.Context, *emrcontainers.CreateVirtualClusterInput, ...request.Option) (*emrcontainers.CreateVirtualClusterOutput, error) CreateVirtualClusterRequest(*emrcontainers.CreateVirtualClusterInput) (*request.Request, *emrcontainers.CreateVirtualClusterOutput) + DeleteJobTemplate(*emrcontainers.DeleteJobTemplateInput) (*emrcontainers.DeleteJobTemplateOutput, error) + DeleteJobTemplateWithContext(aws.Context, *emrcontainers.DeleteJobTemplateInput, ...request.Option) (*emrcontainers.DeleteJobTemplateOutput, error) + DeleteJobTemplateRequest(*emrcontainers.DeleteJobTemplateInput) (*request.Request, *emrcontainers.DeleteJobTemplateOutput) + DeleteManagedEndpoint(*emrcontainers.DeleteManagedEndpointInput) (*emrcontainers.DeleteManagedEndpointOutput, error) DeleteManagedEndpointWithContext(aws.Context, *emrcontainers.DeleteManagedEndpointInput, ...request.Option) (*emrcontainers.DeleteManagedEndpointOutput, error) DeleteManagedEndpointRequest(*emrcontainers.DeleteManagedEndpointInput) (*request.Request, *emrcontainers.DeleteManagedEndpointOutput) @@ -84,6 +92,10 @@ type EMRContainersAPI interface { DescribeJobRunWithContext(aws.Context, *emrcontainers.DescribeJobRunInput, ...request.Option) (*emrcontainers.DescribeJobRunOutput, error) DescribeJobRunRequest(*emrcontainers.DescribeJobRunInput) (*request.Request, *emrcontainers.DescribeJobRunOutput) + DescribeJobTemplate(*emrcontainers.DescribeJobTemplateInput) (*emrcontainers.DescribeJobTemplateOutput, error) + DescribeJobTemplateWithContext(aws.Context, *emrcontainers.DescribeJobTemplateInput, ...request.Option) (*emrcontainers.DescribeJobTemplateOutput, error) + DescribeJobTemplateRequest(*emrcontainers.DescribeJobTemplateInput) (*request.Request, *emrcontainers.DescribeJobTemplateOutput) + DescribeManagedEndpoint(*emrcontainers.DescribeManagedEndpointInput) (*emrcontainers.DescribeManagedEndpointOutput, error) DescribeManagedEndpointWithContext(aws.Context, *emrcontainers.DescribeManagedEndpointInput, ...request.Option) (*emrcontainers.DescribeManagedEndpointOutput, error) DescribeManagedEndpointRequest(*emrcontainers.DescribeManagedEndpointInput) (*request.Request, *emrcontainers.DescribeManagedEndpointOutput) @@ -99,6 +111,13 @@ type EMRContainersAPI interface { ListJobRunsPages(*emrcontainers.ListJobRunsInput, func(*emrcontainers.ListJobRunsOutput, bool) bool) error ListJobRunsPagesWithContext(aws.Context, *emrcontainers.ListJobRunsInput, func(*emrcontainers.ListJobRunsOutput, bool) bool, ...request.Option) error + ListJobTemplates(*emrcontainers.ListJobTemplatesInput) (*emrcontainers.ListJobTemplatesOutput, error) + ListJobTemplatesWithContext(aws.Context, *emrcontainers.ListJobTemplatesInput, ...request.Option) (*emrcontainers.ListJobTemplatesOutput, error) + ListJobTemplatesRequest(*emrcontainers.ListJobTemplatesInput) (*request.Request, *emrcontainers.ListJobTemplatesOutput) + + ListJobTemplatesPages(*emrcontainers.ListJobTemplatesInput, func(*emrcontainers.ListJobTemplatesOutput, bool) bool) error + ListJobTemplatesPagesWithContext(aws.Context, *emrcontainers.ListJobTemplatesInput, func(*emrcontainers.ListJobTemplatesOutput, bool) bool, ...request.Option) error + ListManagedEndpoints(*emrcontainers.ListManagedEndpointsInput) (*emrcontainers.ListManagedEndpointsOutput, error) ListManagedEndpointsWithContext(aws.Context, *emrcontainers.ListManagedEndpointsInput, ...request.Option) (*emrcontainers.ListManagedEndpointsOutput, error) ListManagedEndpointsRequest(*emrcontainers.ListManagedEndpointsInput) (*request.Request, *emrcontainers.ListManagedEndpointsOutput)