diff --git a/CHANGELOG.md b/CHANGELOG.md index 849f166f58..df6ea35a6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Release v1.51.2 (2024-03-18) +=== + +### Service Client Updates +* `service/cloudformation`: Updates service API and documentation + * This release supports for a new API ListStackSetAutoDeploymentTargets, which provider auto-deployment configuration as a describable resource. Customers can now view the specific combinations of regions and OUs that are being auto-deployed. +* `service/kms`: Updates service API and documentation + * Adds the ability to use the default policy name by omitting the policyName parameter in calls to PutKeyPolicy and GetKeyPolicy +* `service/mediatailor`: Updates service API and documentation +* `service/rds`: Updates service API, documentation, waiters, paginators, and examples + * This release launches the ModifyIntegration API and support for data filtering for zero-ETL Integrations. +* `service/s3`: Updates service API and examples + * Fix two issues with response root node names. +* `service/timestream-query`: Updates service documentation + Release v1.51.1 (2024-03-15) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 0e5e777697..1047722cac 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -3776,6 +3776,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "athena.ca-central-1.api.aws", }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "athena.ca-west-1.api.aws", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -22072,6 +22081,14 @@ var awsPartition = partition{ Region: "ap-southeast-3", }, }, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{ + Hostname: "oidc.ap-southeast-4.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-4", + }, + }, endpointKey{ Region: "ca-central-1", }: endpoint{ @@ -23221,6 +23238,14 @@ var awsPartition = partition{ Region: "ap-southeast-3", }, }, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{ + Hostname: "portal.sso.ap-southeast-4.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-4", + }, + }, endpointKey{ Region: "ca-central-1", }: endpoint{ @@ -30822,6 +30847,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, @@ -45662,6 +45690,37 @@ var awsisobPartition = partition{ }: endpoint{}, }, }, + "storagegateway": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips", + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-isob-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + }, + endpointKey{ + Region: "us-isob-east-1-fips", + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + }, + }, "streams.dynamodb": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ diff --git a/aws/version.go b/aws/version.go index 960c6b5965..32e856c7be 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.51.1" +const SDKVersion = "1.51.2" diff --git a/models/apis/cloudformation/2010-05-15/api-2.json b/models/apis/cloudformation/2010-05-15/api-2.json index b8ea370d0a..d0ab357d16 100644 --- a/models/apis/cloudformation/2010-05-15/api-2.json +++ b/models/apis/cloudformation/2010-05-15/api-2.json @@ -839,6 +839,21 @@ "resultWrapper":"ListStackResourcesResult" } }, + "ListStackSetAutoDeploymentTargets":{ + "name":"ListStackSetAutoDeploymentTargets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackSetAutoDeploymentTargetsInput"}, + "output":{ + "shape":"ListStackSetAutoDeploymentTargetsOutput", + "resultWrapper":"ListStackSetAutoDeploymentTargetsResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"} + ] + }, "ListStackSetOperationResults":{ "name":"ListStackSetOperationResults", "http":{ @@ -2918,6 +2933,23 @@ "NextToken":{"shape":"NextToken"} } }, + "ListStackSetAutoDeploymentTargetsInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetNameOrId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "CallAs":{"shape":"CallAs"} + } + }, + "ListStackSetAutoDeploymentTargetsOutput":{ + "type":"structure", + "members":{ + "Summaries":{"shape":"StackSetAutoDeploymentTargetSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListStackSetOperationResultsInput":{ "type":"structure", "required":[ @@ -4407,6 +4439,17 @@ } }, "StackSetARN":{"type":"string"}, + "StackSetAutoDeploymentTargetSummaries":{ + "type":"list", + "member":{"shape":"StackSetAutoDeploymentTargetSummary"} + }, + "StackSetAutoDeploymentTargetSummary":{ + "type":"structure", + "members":{ + "OrganizationalUnitId":{"shape":"OrganizationalUnitId"}, + "Regions":{"shape":"RegionList"} + } + }, "StackSetDriftDetectionDetails":{ "type":"structure", "members":{ diff --git a/models/apis/cloudformation/2010-05-15/docs-2.json b/models/apis/cloudformation/2010-05-15/docs-2.json index 6cebac8874..eafcd58771 100644 --- a/models/apis/cloudformation/2010-05-15/docs-2.json +++ b/models/apis/cloudformation/2010-05-15/docs-2.json @@ -58,6 +58,7 @@ "ListStackInstanceResourceDrifts": "

Returns drift information for resources in a stack instance.

ListStackInstanceResourceDrifts returns drift information for the most recent drift detection operation. If an operation is in progress, it may only return partial results.

", "ListStackInstances": "

Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific Amazon Web Services account name or Region, or that have a specific status.

", "ListStackResources": "

Returns descriptions of all resources of the specified stack.

For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted.

", + "ListStackSetAutoDeploymentTargets": "

Returns summary information about deployment targets for a stack set.

", "ListStackSetOperationResults": "

Returns summary information about the results of a stack set operation.

", "ListStackSetOperations": "

Returns summary information about operations performed on a stack set.

", "ListStackSets": "

Returns summary information about stack sets that are associated with the user.

", @@ -276,6 +277,7 @@ "ImportStacksToStackSetInput$CallAs": "

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", "ListStackInstanceResourceDriftsInput$CallAs": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", "ListStackInstancesInput$CallAs": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", + "ListStackSetAutoDeploymentTargetsInput$CallAs": "

Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for StackSets with self-managed permissions.

", "ListStackSetOperationResultsInput$CallAs": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", "ListStackSetOperationsInput$CallAs": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", "ListStackSetsInput$CallAs": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

", @@ -293,7 +295,7 @@ "base": null, "refs": { "CreateChangeSetInput$Capabilities": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

Only one of the Capabilities and ResourceType parameters can be specified.

", - "CreateStackInput$Capabilities": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

Only one of the Capabilities and ResourceType parameters can be specified.

", + "CreateStackInput$Capabilities": "

In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack.

Only one of the Capabilities and ResourceType parameters can be specified.

", "CreateStackSetInput$Capabilities": "

In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for CloudFormation to create the stack set and related stack instances.

", "DescribeChangeSetOutput$Capabilities": "

If you execute the change set, the list of capabilities that were explicitly acknowledged when the change set was created.

", "GetTemplateSummaryOutput$Capabilities": "

The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error.

For more information, see Acknowledging IAM Resources in CloudFormation Templates.

", @@ -1489,6 +1491,16 @@ "refs": { } }, + "ListStackSetAutoDeploymentTargetsInput": { + "base": null, + "refs": { + } + }, + "ListStackSetAutoDeploymentTargetsOutput": { + "base": null, + "refs": { + } + }, "ListStackSetOperationResultsInput": { "base": null, "refs": { @@ -1655,6 +1667,7 @@ "ListGeneratedTemplatesInput$MaxResults": "

If the number of available results exceeds this maximum, the response includes a NextToken value that you can use for the NextToken parameter to get the next set of results. By default the ListGeneratedTemplates API action will return at most 50 results in each response. The maximum value is 100.

", "ListStackInstanceResourceDriftsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", "ListStackInstancesInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", + "ListStackSetAutoDeploymentTargetsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", "ListStackSetOperationResultsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", "ListStackSetOperationsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", "ListStackSetsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

", @@ -1726,6 +1739,8 @@ "ListStackInstancesOutput$NextToken": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null.

", "ListStackResourcesInput$NextToken": "

A string that identifies the next page of stack resources that you want to retrieve.

", "ListStackResourcesOutput$NextToken": "

If the output exceeds 1 MB, a string that identifies the next page of stack resources. If no additional page exists, this value is null.

", + "ListStackSetAutoDeploymentTargetsInput$NextToken": "

A string that identifies the next page of stack set deployment targets that you want to retrieve.

", + "ListStackSetAutoDeploymentTargetsOutput$NextToken": "

If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackSetAutoDeploymentTargets again and use that value for the NextToken parameter. If the request returns all results, NextToken is set to an empty string.

", "ListStackSetOperationResultsInput$NextToken": "

If the previous request didn't return all the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

", "ListStackSetOperationResultsOutput$NextToken": "

If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of results, call ListOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, NextToken is set to null.

", "ListStackSetOperationsInput$NextToken": "

If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperations again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

", @@ -1854,6 +1869,7 @@ "OrganizationalUnitIdList$member": null, "StackInstance$OrganizationalUnitId": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets .

", "StackInstanceSummary$OrganizationalUnitId": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets .

", + "StackSetAutoDeploymentTargetSummary$OrganizationalUnitId": "

The organization root ID or organizational unit (OU) IDs where the stack set is targeted.

", "StackSetOperationResultSummary$OrganizationalUnitId": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets .

" } }, @@ -2161,6 +2177,7 @@ "CreateStackInstancesInput$Regions": "

The names of one or more Amazon Web Services Regions where you want to create stack instances using the specified Amazon Web Services accounts.

", "DeleteStackInstancesInput$Regions": "

The Amazon Web Services Regions where you want to delete stack set instances.

", "StackSet$Regions": "

Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.

", + "StackSetAutoDeploymentTargetSummary$Regions": "

The list of Regions targeted for this organization or OU.

", "StackSetOperationPreferences$RegionOrder": "

The order of the Regions where you want to perform the stack operation.

RegionOrder isn't followed if AutoDeployment is enabled.

", "UpdateStackInstancesInput$Regions": "

The names of one or more Amazon Web Services Regions in which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and Amazon Web Services Regions.

", "UpdateStackSetInput$Regions": "

The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update stack set instances.

To update all the stack instances associated with this stack set, do not specify the Accounts or Regions properties.

If the stack set update includes changes to the template (that is, if the TemplateBody or TemplateURL properties are specified), or the Parameters property, CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.

" @@ -2847,7 +2864,7 @@ "StackInstanceDetailedStatus": { "base": null, "refs": { - "StackInstanceComprehensiveStatus$DetailedStatus": "" + "StackInstanceComprehensiveStatus$DetailedStatus": "" } }, "StackInstanceFilter": { @@ -3075,6 +3092,18 @@ "StackSet$StackSetARN": "

The Amazon Resource Name (ARN) of the stack set.

" } }, + "StackSetAutoDeploymentTargetSummaries": { + "base": null, + "refs": { + "ListStackSetAutoDeploymentTargetsOutput$Summaries": "

An array of summaries of the deployment targets for the stack set.

" + } + }, + "StackSetAutoDeploymentTargetSummary": { + "base": "

One of the targets for the stack set. Returned by the ListStackSetAutoDeploymentTargets API operation.

", + "refs": { + "StackSetAutoDeploymentTargetSummaries$member": null + } + }, "StackSetDriftDetectionDetails": { "base": "

Detailed information about the drift status of the stack set.

For stack sets, contains information about the last completed drift operation performed on the stack set. Information about drift operations in-progress isn't included.

For stack set operations, includes information about drift operations currently being performed on the stack set.

For more information, see Detecting unmanaged changes in stack sets in the CloudFormation User Guide.

", "refs": { @@ -3131,6 +3160,7 @@ "GetTemplateSummaryInput$StackSetName": "

The name or unique ID of the stack set from which the stack was created.

Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL.

", "ImportStacksToStackSetInput$StackSetName": "

The name of the stack set. The name must be unique in the Region where you create your stack set.

", "ListStackInstanceResourceDriftsInput$StackSetName": "

The name or unique ID of the stack set that you want to list drifted resources for.

", + "ListStackSetAutoDeploymentTargetsInput$StackSetName": "

The name or unique ID of the stack set that you want to get automatic deployment targets for.

", "UpdateStackInstancesInput$StackSetName": "

The name or unique ID of the stack set associated with the stack instances.

" } }, diff --git a/models/apis/kms/2014-11-01/api-2.json b/models/apis/kms/2014-11-01/api-2.json index f5ee914412..4051d85a5a 100644 --- a/models/apis/kms/2014-11-01/api-2.json +++ b/models/apis/kms/2014-11-01/api-2.json @@ -1588,10 +1588,7 @@ }, "GetKeyPolicyRequest":{ "type":"structure", - "required":[ - "KeyId", - "PolicyName" - ], + "required":["KeyId"], "members":{ "KeyId":{"shape":"KeyIdType"}, "PolicyName":{"shape":"PolicyNameType"} @@ -1600,7 +1597,8 @@ "GetKeyPolicyResponse":{ "type":"structure", "members":{ - "Policy":{"shape":"PolicyType"} + "Policy":{"shape":"PolicyType"}, + "PolicyName":{"shape":"PolicyNameType"} } }, "GetKeyRotationStatusRequest":{ @@ -2202,7 +2200,6 @@ "type":"structure", "required":[ "KeyId", - "PolicyName", "Policy" ], "members":{ diff --git a/models/apis/kms/2014-11-01/docs-2.json b/models/apis/kms/2014-11-01/docs-2.json index 81f0f7735b..b1b5fc47eb 100644 --- a/models/apis/kms/2014-11-01/docs-2.json +++ b/models/apis/kms/2014-11-01/docs-2.json @@ -30,7 +30,7 @@ "GetKeyRotationStatus": "

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified KMS key.

When you enable automatic rotation for customer managed KMS keys, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key..

You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The key rotation status for Amazon Web Services managed KMS keys is always true.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:GetKeyRotationStatus (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "GetParametersForImport": "

Returns the public key and an import token you need to import or reimport key material for a KMS key.

By default, KMS keys are created with key material that KMS generates. This operation supports Importing key material, an advanced feature that lets you generate and import the cryptographic key material for a KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

Before calling GetParametersForImport, use the CreateKey operation with an Origin value of EXTERNAL to create a KMS key with no key material. You can import key material for a symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric signing KMS key. You can also import key material into a multi-Region key of any supported type. However, you can't import key material into a KMS key in a custom key store. You can also use GetParametersForImport to get a public key and import token to reimport the original key material into a KMS key whose key material expired or was deleted.

GetParametersForImport returns the items that you need to import your key material.

The public key and its import token are permanently linked and must be used together. Each public key and import token set is valid for 24 hours. The expiration date and time appear in the ParametersValidTo field in the GetParametersForImport response. You cannot use an expired public key or import token in an ImportKeyMaterial request. If your key and token expire, send another GetParametersForImport request.

GetParametersForImport requires the following information:

You can use the same or a different public key spec and wrapping algorithm each time you import or reimport the same key material.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:GetParametersForImport (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "GetPublicKey": "

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric KMS key, which never leaves KMS unencrypted, callers with kms:GetPublicKey permission can download the public key of an asymmetric KMS key. You can share the public key to allow others to encrypt messages and verify signatures outside of KMS. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

You do not need to download the public key. Instead, you can use the public key within KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the public key within KMS, you benefit from the authentication, authorization, and logging that are part of every KMS operation. You also reduce of risk of encrypting data that cannot be decrypted. These features are not effective outside of KMS.

To help you use the public key safely outside of KMS, GetPublicKey returns important information about the public key in the response, including:

Although KMS cannot enforce these restrictions on external operations, it is crucial that you use this information to prevent the public key from being used improperly. For example, you can prevent a public signing key from being used encrypt data, or prevent a public key from being used with an encryption algorithm that is not supported by KMS. You can also avoid errors, such as using the wrong signing algorithm in a verification operation.

To verify a signature outside of KMS with an SM2 public key (China Regions only), you must specify the distinguishing ID. By default, KMS uses 1234567812345678 as the distinguishing ID. For more information, see Offline verification with SM2 key pairs.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GetPublicKey (key policy)

Related operations: CreateKey

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", - "ImportKeyMaterial": "

Imports or reimports key material into an existing KMS key that was created without key material. ImportKeyMaterial also sets the expiration model and expiration date of the imported key material.

By default, KMS keys are created with key material that KMS generates. This operation supports Importing key material, an advanced feature that lets you generate and import the cryptographic key material for a KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

After you successfully import key material into a KMS key, you can reimport the same key material into that KMS key, but you cannot import different key material. You might reimport key material to replace key material that expired or key material that you deleted. You might also reimport key material to change the expiration model or expiration date of the key material. Before reimporting key material, if necessary, call DeleteImportedKeyMaterial to delete the current imported key material.

Each time you import key material into KMS, you can determine whether (ExpirationModel) and when (ValidTo) the key material expires. To change the expiration of your key material, you must import it again, either by calling ImportKeyMaterial or using the import features of the KMS console.

Before calling ImportKeyMaterial:

Then, in an ImportKeyMaterial request, you submit your encrypted key material and import token. When calling this operation, you must specify the following values:

When this operation is successful, the key state of the KMS key changes from PendingImport to Enabled, and you can use the KMS key in cryptographic operations.

If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and repeat the import procedure. For help, see How To Import Key Material in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ImportKeyMaterial (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", + "ImportKeyMaterial": "

Imports or reimports key material into an existing KMS key that was created without key material. ImportKeyMaterial also sets the expiration model and expiration date of the imported key material.

By default, KMS keys are created with key material that KMS generates. This operation supports Importing key material, an advanced feature that lets you generate and import the cryptographic key material for a KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

After you successfully import key material into a KMS key, you can reimport the same key material into that KMS key, but you cannot import different key material. You might reimport key material to replace key material that expired or key material that you deleted. You might also reimport key material to change the expiration model or expiration date of the key material.

Each time you import key material into KMS, you can determine whether (ExpirationModel) and when (ValidTo) the key material expires. To change the expiration of your key material, you must import it again, either by calling ImportKeyMaterial or using the import features of the KMS console.

Before calling ImportKeyMaterial:

Then, in an ImportKeyMaterial request, you submit your encrypted key material and import token. When calling this operation, you must specify the following values:

When this operation is successful, the key state of the KMS key changes from PendingImport to Enabled, and you can use the KMS key in cryptographic operations.

If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and repeat the import procedure. For help, see How To Import Key Material in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ImportKeyMaterial (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "ListAliases": "

Gets a list of aliases in the caller's Amazon Web Services account and region. For more information about aliases, see CreateAlias.

By default, the ListAliases operation returns all aliases in the account and region. To get only the aliases associated with a particular KMS key, use the KeyId parameter.

The ListAliases response can include aliases that you created and associated with your customer managed keys, and aliases that Amazon Web Services created and associated with Amazon Web Services managed keys in your account. You can recognize Amazon Web Services aliases because their names have the format aws/<service-name>, such as aws/dynamodb.

The response might also include aliases that have no TargetKeyId field. These are predefined aliases that Amazon Web Services has created but has not yet associated with a KMS key. Aliases that Amazon Web Services creates in your account, including predefined aliases, do not count against your KMS aliases quota.

Cross-account use: No. ListAliases does not return aliases in other Amazon Web Services accounts.

Required permissions: kms:ListAliases (IAM policy)

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "ListGrants": "

Gets a list of all grants for the specified KMS key.

You must specify the KMS key in all requests. You can filter the grant list by grant ID or grantee principal.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of working with grants in several programming languages, see Programming grants.

The GranteePrincipal field in the ListGrants response usually contains the user or role designated as the grantee principal in the grant. However, when the grantee principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains the service principal, which might represent several different grantee principals.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:ListGrants (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "ListKeyPolicies": "

Gets the names of the key policies that are attached to a KMS key. This operation is designed to get policy names that you can use in a GetKeyPolicy operation. However, the only valid policy name is default.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ListKeyPolicies (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", @@ -41,7 +41,7 @@ "ReEncrypt": "

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this operation to change the KMS key under which data is encrypted, such as when you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than the caller. To specify a KMS key in a different account, you must use its key ARN or alias ARN.

Required permissions:

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\" permission in your key policy. This permission is automatically included in the key policy when you use the console to create a KMS key. But you must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "ReplicateKey": "

Replicates a multi-Region key into the specified Region. This operation creates a multi-Region replica key based on a multi-Region primary key in a different Region of the same Amazon Web Services partition. You can create multiple replicas of a primary key, but each must be in a different Region. To create a multi-Region primary key, use the CreateKey operation.

This operation supports multi-Region keys, an KMS feature that lets you create multiple interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

A replica key is a fully-functional KMS key that can be used independently of its primary and peer replica keys. A primary key and its replica keys share properties that make them interoperable. They have the same key ID and key material. They also have the same key spec, key usage, key material origin, and automatic key rotation status. KMS automatically synchronizes these shared properties among related multi-Region keys. All other properties of a replica key can differ, including its key policy, tags, aliases, and Key states of KMS keys. KMS pricing and quotas for KMS keys apply to each primary key and replica key.

When this operation completes, the new replica key has a transient key state of Creating. This key state changes to Enabled (or PendingImport) after a few seconds when the process of creating the new replica key is complete. While the key state is Creating, you can manage key, but you cannot yet use it in cryptographic operations. If you are creating and using the replica key programmatically, retry on KMSInvalidStateException or call DescribeKey to check its KeyState value before using it. For details about the Creating key state, see Key states of KMS keys in the Key Management Service Developer Guide.

You cannot create more than one replica of a primary key in any Region. If the Region already includes a replica of the key you're trying to replicate, ReplicateKey returns an AlreadyExistsException error. If the key state of the existing replica is PendingDeletion, you can cancel the scheduled key deletion (CancelKeyDeletion) or wait for the key to be deleted. The new replica key you create will have the same shared properties as the original replica key.

The CloudTrail log of a ReplicateKey operation records a ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

If you replicate a multi-Region primary key with imported key material, the replica key is created with no key material. You must import the same key material that you imported into the primary key. For details, see Importing key material into multi-Region keys in the Key Management Service Developer Guide.

To convert a replica key to a primary key, use the UpdatePrimaryRegion operation.

ReplicateKey uses different default values for the KeyPolicy and Tags parameters than those used in the KMS console. For details, see the parameter descriptions.

Cross-account use: No. You cannot use this operation to create a replica key in a different Amazon Web Services account.

Required permissions:

Related operations

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "RetireGrant": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To identify the grant to retire, use a grant token, or both the grant ID and a key identifier (key ID or key ARN) of the KMS key. The CreateGrant operation returns both values.

This operation can be called by the retiring principal for a grant, by the grantee principal if the grant allows the RetireGrant operation, and by the Amazon Web Services account in which the grant is created. It can also be called by principals to whom permission for retiring a grant is delegated. For details, see Retiring and revoking grants in the Key Management Service Developer Guide.

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of working with grants in several programming languages, see Programming grants.

Cross-account use: Yes. You can retire a grant on a KMS key in a different Amazon Web Services account.

Required permissions: Permission to retire a grant is determined primarily by the grant. For details, see Retiring and revoking grants in the Key Management Service Developer Guide.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", - "RevokeGrant": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the grant allows. For more information, see Retiring and revoking grants in the Key Management Service Developer Guide .

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in the Key Management Service Developer Guide .

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of working with grants in several programming languages, see Programming grants.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:RevokeGrant (key policy).

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", + "RevokeGrant": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the grant allows. For more information, see Retiring and revoking grants in the Key Management Service Developer Guide .

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in the Key Management Service Developer Guide .

For detailed information about grants, including grant terminology, see Grants in KMS in the Key Management Service Developer Guide . For examples of working with grants in several programming languages, see Programming grants.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:RevokeGrant (key policy).

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "ScheduleKeyDeletion": "

Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it.

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a multi-Region replica key, or an asymmetric or HMAC KMS key with imported key material.) To prevent the use of a KMS key without deleting it, use DisableKey.

You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide.

When KMS deletes a KMS key from an CloudHSM key store, it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups. Deleting a KMS key from an external key store has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material.

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ScheduleKeyDeletion (key policy)

Related operations

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "Sign": "

Creates a digital signature for a message or message digest by using the private key in an asymmetric signing KMS key. To verify the signature, use the Verify operation, or use the public key in the same asymmetric KMS key outside of KMS. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA or ECC pair that is represented by an asymmetric KMS key. The key owner (or an authorized user) uses their private key to sign a message. Anyone with the public key can verify that the message was signed with that particular private key and that the message hasn't changed since it was signed.

To use the Sign operation, provide the following information:

When signing a message, be sure to record the KMS key and the signing algorithm. This information is required to verify the signature.

Best practices recommend that you limit the time during which any signature is effective. This deters an attack where the actor uses a signed message to establish validity repeatedly or long after the message is superseded. Signatures do not include a timestamp, but you can include a timestamp in the signed message to help you detect when its time to refresh the signature.

To verify the signature that this operation generates, use the Verify operation. Or use the GetPublicKey operation to download the public key and then use the public key to verify the signature outside of KMS.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Sign (key policy)

Related operations: Verify

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", "TagResource": "

Adds or edits tags on a customer managed key.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

You can use this operation to tag a customer managed key, but you cannot tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store, or an alias.

You can also add tags to a KMS key while creating it (CreateKey) or replicating it (ReplicateKey).

For information about using tags in KMS, see Tagging keys. For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:TagResource (key policy)

Related operations

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

", @@ -1187,9 +1187,10 @@ "PolicyNameType": { "base": null, "refs": { - "GetKeyPolicyRequest$PolicyName": "

Specifies the name of the key policy. The only valid name is default. To get the names of key policies, use ListKeyPolicies.

", + "GetKeyPolicyRequest$PolicyName": "

Specifies the name of the key policy. If no policy name is specified, the default value is default. The only valid name is default. To get the names of key policies, use ListKeyPolicies.

", + "GetKeyPolicyResponse$PolicyName": "

The name of the key policy. The only valid value is default.

", "PolicyNameList$member": null, - "PutKeyPolicyRequest$PolicyName": "

The name of the key policy. The only valid value is default.

" + "PutKeyPolicyRequest$PolicyName": "

The name of the key policy. If no policy name is specified, the default value is default. The only valid value is default.

" } }, "PolicyType": { diff --git a/models/apis/mediatailor/2018-04-23/api-2.json b/models/apis/mediatailor/2018-04-23/api-2.json index 9375b4c7b0..2310eda378 100644 --- a/models/apis/mediatailor/2018-04-23/api-2.json +++ b/models/apis/mediatailor/2018-04-23/api-2.json @@ -568,6 +568,29 @@ "INFO" ] }, + "AlternateMedia":{ + "type":"structure", + "members":{ + "AdBreaks":{"shape":"__listOfAdBreak"}, + "ClipRange":{"shape":"ClipRange"}, + "DurationMillis":{"shape":"__long"}, + "LiveSourceName":{"shape":"__string"}, + "ScheduledStartTimeMillis":{"shape":"__long"}, + "SourceLocationName":{"shape":"__string"}, + "VodSourceName":{"shape":"__string"} + } + }, + "AudienceMedia":{ + "type":"structure", + "members":{ + "AlternateMedia":{"shape":"__listOfAlternateMedia"}, + "Audience":{"shape":"__string"} + } + }, + "Audiences":{ + "type":"list", + "member":{"shape":"String"} + }, "AvailMatchingCriteria":{ "type":"structure", "required":[ @@ -625,6 +648,7 @@ ], "members":{ "Arn":{"shape":"__string"}, + "Audiences":{"shape":"Audiences"}, "ChannelName":{"shape":"__string"}, "ChannelState":{"shape":"__string"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -649,9 +673,12 @@ }, "ClipRange":{ "type":"structure", - "required":["EndOffsetMillis"], "members":{ - "EndOffsetMillis":{"shape":"__long"} + "EndOffsetMillis":{ + "shape":"__long", + "box":true + }, + "StartOffsetMillis":{"shape":"__long"} } }, "ConfigurationAliasesRequest":{ @@ -709,6 +736,7 @@ "PlaybackMode" ], "members":{ + "Audiences":{"shape":"Audiences"}, "ChannelName":{ "shape":"__string", "location":"uri", @@ -729,6 +757,7 @@ "type":"structure", "members":{ "Arn":{"shape":"__string"}, + "Audiences":{"shape":"Audiences"}, "ChannelName":{"shape":"__string"}, "ChannelState":{"shape":"ChannelState"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -829,6 +858,7 @@ ], "members":{ "AdBreaks":{"shape":"__listOfAdBreak"}, + "AudienceMedia":{"shape":"__listOfAudienceMedia"}, "ChannelName":{ "shape":"__string", "location":"uri", @@ -850,6 +880,7 @@ "members":{ "AdBreaks":{"shape":"__listOfAdBreak"}, "Arn":{"shape":"__string"}, + "AudienceMedia":{"shape":"__listOfAudienceMedia"}, "ChannelName":{"shape":"__string"}, "ClipRange":{"shape":"ClipRange"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -1146,6 +1177,7 @@ "required":["LogConfiguration"], "members":{ "Arn":{"shape":"__string"}, + "Audiences":{"shape":"Audiences"}, "ChannelName":{"shape":"__string"}, "ChannelState":{"shape":"ChannelState"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -1220,6 +1252,7 @@ "members":{ "AdBreaks":{"shape":"__listOfAdBreak"}, "Arn":{"shape":"__string"}, + "AudienceMedia":{"shape":"__listOfAudienceMedia"}, "ChannelName":{"shape":"__string"}, "ClipRange":{"shape":"ClipRange"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -1322,6 +1355,11 @@ "type":"structure", "required":["ChannelName"], "members":{ + "Audience":{ + "shape":"__string", + "location":"querystring", + "locationName":"audience" + }, "ChannelName":{ "shape":"__string", "location":"uri", @@ -1965,6 +2003,7 @@ "ApproximateDurationSeconds":{"shape":"__long"}, "ApproximateStartTime":{"shape":"__timestampUnix"}, "Arn":{"shape":"__string"}, + "Audiences":{"shape":"Audiences"}, "ChannelName":{"shape":"__string"}, "LiveSourceName":{"shape":"__string"}, "ProgramName":{"shape":"__string"}, @@ -1978,7 +2017,8 @@ "type":"string", "enum":[ "PROGRAM", - "FILLER_SLATE" + "FILLER_SLATE", + "ALTERNATE_MEDIA" ] }, "SecretsManagerAccessTokenConfiguration":{ @@ -2169,6 +2209,7 @@ "Outputs" ], "members":{ + "Audiences":{"shape":"Audiences"}, "ChannelName":{ "shape":"__string", "location":"uri", @@ -2183,6 +2224,7 @@ "type":"structure", "members":{ "Arn":{"shape":"__string"}, + "Audiences":{"shape":"Audiences"}, "ChannelName":{"shape":"__string"}, "ChannelState":{"shape":"ChannelState"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -2243,6 +2285,7 @@ ], "members":{ "AdBreaks":{"shape":"__listOfAdBreak"}, + "AudienceMedia":{"shape":"__listOfAudienceMedia"}, "ChannelName":{ "shape":"__string", "location":"uri", @@ -2261,6 +2304,7 @@ "members":{ "AdBreaks":{"shape":"__listOfAdBreak"}, "Arn":{"shape":"__string"}, + "AudienceMedia":{"shape":"__listOfAudienceMedia"}, "ChannelName":{"shape":"__string"}, "ClipRange":{"shape":"ClipRange"}, "CreationTime":{"shape":"__timestampUnix"}, @@ -2405,6 +2449,14 @@ "type":"list", "member":{"shape":"Alert"} }, + "__listOfAlternateMedia":{ + "type":"list", + "member":{"shape":"AlternateMedia"} + }, + "__listOfAudienceMedia":{ + "type":"list", + "member":{"shape":"AudienceMedia"} + }, "__listOfAvailMatchingCriteria":{ "type":"list", "member":{"shape":"AvailMatchingCriteria"} diff --git a/models/apis/mediatailor/2018-04-23/docs-2.json b/models/apis/mediatailor/2018-04-23/docs-2.json index b4f6457d56..1322bbd69b 100644 --- a/models/apis/mediatailor/2018-04-23/docs-2.json +++ b/models/apis/mediatailor/2018-04-23/docs-2.json @@ -113,6 +113,30 @@ "Alert$Category": "

The category that MediaTailor assigns to the alert.

" } }, + "AlternateMedia": { + "base": "

A playlist of media (VOD and/or live) to be played instead of the default media on a particular program.

", + "refs": { + "__listOfAlternateMedia$member": null + } + }, + "AudienceMedia": { + "base": "

An AudienceMedia object contains an Audience and a list of AlternateMedia.

", + "refs": { + "__listOfAudienceMedia$member": null + } + }, + "Audiences": { + "base": null, + "refs": { + "Channel$Audiences": "

The list of audiences defined in channel.

", + "CreateChannelRequest$Audiences": "

The list of audiences defined in channel.

", + "CreateChannelResponse$Audiences": "

The list of audiences defined in channel.

", + "DescribeChannelResponse$Audiences": "

The list of audiences defined in channel.

", + "ScheduleEntry$Audiences": "

The list of audiences defined in ScheduleEntry.

", + "UpdateChannelRequest$Audiences": "

The list of audiences defined in channel.

", + "UpdateChannelResponse$Audiences": "

The list of audiences defined in channel.

" + } + }, "AvailMatchingCriteria": { "base": "

MediaTailor only places (consumes) prefetched ads if the ad break meets the criteria defined by the dynamic variables. This gives you granular control over which ad break to place the prefetched ads into.

As an example, let's say that you set DynamicVariable to scte.event_id and Operator to EQUALS, and your playback configuration has an ADS URL of https://my.ads.server.com/path?&podId=[scte.avail_num]&event=[scte.event_id]&duration=[session.avail_duration_secs]. And the prefetch request to the ADS contains these values https://my.ads.server.com/path?&podId=3&event=my-awesome-event&duration=30. MediaTailor will only insert the prefetched ads into the ad break if has a SCTE marker with an event id of my-awesome-event, since it must match the event id that MediaTailor uses to query the ADS.

You can specify up to five AvailMatchingCriteria. If you specify multiple AvailMatchingCriteria, MediaTailor combines them to match using a logical AND. You can model logical OR combinations by creating multiple prefetch schedules.

", "refs": { @@ -168,6 +192,7 @@ "ClipRange": { "base": "

Clip range configuration for the VOD source associated with the program.

", "refs": { + "AlternateMedia$ClipRange": null, "CreateProgramResponse$ClipRange": "

The clip range configuration settings.

", "DescribeProgramResponse$ClipRange": "

The clip range configuration settings.

", "ScheduleConfiguration$ClipRange": "

Program clip range configuration.

", @@ -905,6 +930,7 @@ "String": { "base": null, "refs": { + "Audiences$member": null, "KeyValuePair$Key": "

For SCTE35_ENHANCED output, defines a key. MediaTailor takes this key, and its associated value, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a key, you must also specify a corresponding value.

", "KeyValuePair$Value": "

For SCTE35_ENHANCED output, defines a value. MediaTailor; takes this value, and its associated key, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a value, you must also specify a corresponding key.

", "SegmentationDescriptor$SegmentationUpid": "

The Upid to assign to the segmentation_descriptor.segmentation_upid message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. The value must be a hexadecimal string containing only the characters 0 though 9 and A through F. The default value is \"\" (an empty string).

" @@ -1065,6 +1091,7 @@ "__listOfAdBreak": { "base": null, "refs": { + "AlternateMedia$AdBreaks": "

Ad break configuration parameters defined in AlternateMedia.

", "CreateProgramRequest$AdBreaks": "

The ad break configuration settings.

", "CreateProgramResponse$AdBreaks": "

The ad break configuration settings.

", "DescribeProgramResponse$AdBreaks": "

The ad break configuration settings.

", @@ -1078,6 +1105,22 @@ "ListAlertsResponse$Items": "

A list of alerts that are associated with this resource.

" } }, + "__listOfAlternateMedia": { + "base": null, + "refs": { + "AudienceMedia$AlternateMedia": "

The list of AlternateMedia defined in AudienceMedia.

" + } + }, + "__listOfAudienceMedia": { + "base": null, + "refs": { + "CreateProgramRequest$AudienceMedia": "

The list of AudienceMedia defined in program.

", + "CreateProgramResponse$AudienceMedia": "

The list of AudienceMedia defined in program.

", + "DescribeProgramResponse$AudienceMedia": "

The list of AudienceMedia defined in program.

", + "UpdateProgramRequest$AudienceMedia": "

The list of AudienceMedia defined in program.

", + "UpdateProgramResponse$AudienceMedia": "

The list of AudienceMedia defined in program.

" + } + }, "__listOfAvailMatchingCriteria": { "base": null, "refs": { @@ -1155,7 +1198,10 @@ "refs": { "AdBreak$OffsetMillis": "

How long (in milliseconds) after the beginning of the program that an ad starts. This value must fall within 100ms of a segment boundary, otherwise the ad break will be skipped.

", "AdBreakOpportunity$OffsetMillis": "

The offset in milliseconds from the start of the VOD source at which an ad marker was detected.

", + "AlternateMedia$DurationMillis": "

The duration of the alternateMedia in milliseconds.

", + "AlternateMedia$ScheduledStartTimeMillis": "

The date and time that the alternateMedia is scheduled to start, in epoch milliseconds.

", "ClipRange$EndOffsetMillis": "

The end offset of the clip range, in milliseconds, starting from the beginning of the VOD source associated with the program.

", + "ClipRange$StartOffsetMillis": "

The start offset of the clip range, in milliseconds. This offset truncates the start at the number of milliseconds into the duration of the VOD source.

", "CreateProgramResponse$DurationMillis": "

The duration of the live program in milliseconds.

", "ScheduleAdBreak$ApproximateDurationSeconds": "

The approximate duration of the ad break, in seconds.

", "ScheduleEntry$ApproximateDurationSeconds": "

The approximate duration of this program, in seconds.

", @@ -1206,6 +1252,10 @@ "Alert$AlertCode": "

The code for the alert. For example, NOT_PROCESSED.

", "Alert$AlertMessage": "

If an alert is generated for a resource, an explanation of the reason for the alert.

", "Alert$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "AlternateMedia$LiveSourceName": "

The name of the live source for alternateMedia.

", + "AlternateMedia$SourceLocationName": "

The name of the source location for alternateMedia.

", + "AlternateMedia$VodSourceName": "

The name of the VOD source for alternateMedia.

", + "AudienceMedia$Audience": "

The Audience defined in AudienceMedia.

", "AvailMatchingCriteria$DynamicVariable": "

The dynamic variable(s) that MediaTailor should use as avail matching criteria. MediaTailor only places the prefetched ads into the avail if the avail matches the criteria defined by the dynamic variable. For information about dynamic variables, see Using dynamic ad variables in the MediaTailor User Guide.

You can include up to 100 dynamic variables.

", "AvailSuppression$Value": "

A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.

", "BadRequestException$Message": null, @@ -1304,6 +1354,7 @@ "DescribeVodSourceResponse$VodSourceName": "

The name of the VOD source.

", "GetChannelPolicyRequest$ChannelName": "

The name of the channel associated with this Channel Policy.

", "GetChannelPolicyResponse$Policy": "

The IAM policy for the channel. IAM policies are used to control access to your channel.

", + "GetChannelScheduleRequest$Audience": "

The single audience for GetChannelScheduleRequest.

", "GetChannelScheduleRequest$ChannelName": "

The name of the channel associated with this Channel Schedule.

", "GetChannelScheduleRequest$DurationMinutes": "

The duration in minutes of the channel schedule.

", "GetChannelScheduleRequest$NextToken": "

(Optional) If the playback configuration has more than MaxResults channel schedules, use NextToken to get the second and subsequent pages of results.

For the first GetChannelScheduleRequest request, omit this value.

For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request.

If the previous response didn't include a NextToken element, there are no more channel schedules to get.

", diff --git a/models/apis/rds/2014-10-31/api-2.json b/models/apis/rds/2014-10-31/api-2.json index 68d6ed5e1c..8a59d210bb 100644 --- a/models/apis/rds/2014-10-31/api-2.json +++ b/models/apis/rds/2014-10-31/api-2.json @@ -2136,6 +2136,23 @@ {"shape":"InvalidDBInstanceStateFault"} ] }, + "ModifyIntegration":{ + "name":"ModifyIntegration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyIntegrationMessage"}, + "output":{ + "shape":"Integration", + "resultWrapper":"ModifyIntegrationResult" + }, + "errors":[ + {"shape":"IntegrationNotFoundFault"}, + {"shape":"InvalidIntegrationStateFault"}, + {"shape":"IntegrationConflictOperationFault"} + ] + }, "ModifyOptionGroup":{ "name":"ModifyOptionGroup", "http":{ @@ -3944,7 +3961,9 @@ "IntegrationName":{"shape":"IntegrationName"}, "KMSKeyId":{"shape":"String"}, "AdditionalEncryptionContext":{"shape":"EncryptionContextMap"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "DataFilter":{"shape":"DataFilter"}, + "Description":{"shape":"IntegrationDescription"} } }, "CreateOptionGroupMessage":{ @@ -5684,6 +5703,12 @@ }, "exception":true }, + "DataFilter":{ + "type":"string", + "max":25600, + "min":1, + "pattern":"[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*" + }, "DatabaseArn":{ "type":"string", "max":2048, @@ -7127,7 +7152,9 @@ "Status":{"shape":"IntegrationStatus"}, "Tags":{"shape":"TagList"}, "CreateTime":{"shape":"TStamp"}, - "Errors":{"shape":"IntegrationErrorList"} + "Errors":{"shape":"IntegrationErrorList"}, + "DataFilter":{"shape":"DataFilter"}, + "Description":{"shape":"IntegrationDescription"} } }, "IntegrationAlreadyExistsFault":{ @@ -7145,7 +7172,7 @@ "type":"string", "max":255, "min":1, - "pattern":"arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:integration:[a-z][a-z0-9]*(-[a-zA-Z0-9]+)*\\/[a-zA-Z0-9_:\\-\\/]+" + "pattern":"arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:integration:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, "IntegrationConflictOperationFault":{ "type":"structure", @@ -7158,6 +7185,12 @@ }, "exception":true }, + "IntegrationDescription":{ + "type":"string", + "max":1000, + "min":0, + "pattern":".*" + }, "IntegrationError":{ "type":"structure", "required":["ErrorCode"], @@ -8102,6 +8135,16 @@ "GlobalCluster":{"shape":"GlobalCluster"} } }, + "ModifyIntegrationMessage":{ + "type":"structure", + "required":["IntegrationIdentifier"], + "members":{ + "IntegrationIdentifier":{"shape":"IntegrationIdentifier"}, + "IntegrationName":{"shape":"IntegrationName"}, + "DataFilter":{"shape":"DataFilter"}, + "Description":{"shape":"IntegrationDescription"} + } + }, "ModifyOptionGroupMessage":{ "type":"structure", "required":["OptionGroupName"], diff --git a/models/apis/rds/2014-10-31/docs-2.json b/models/apis/rds/2014-10-31/docs-2.json index f7d51bb074..eac61c5e91 100644 --- a/models/apis/rds/2014-10-31/docs-2.json +++ b/models/apis/rds/2014-10-31/docs-2.json @@ -128,6 +128,7 @@ "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

", "ModifyEventSubscription": "

Modifies an existing RDS event notification subscription. You can't modify the source identifiers using this call. To change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given source type (SourceType) in Events in the Amazon RDS User Guide or by using the DescribeEventCategories operation.

", "ModifyGlobalCluster": "

Modifies a setting for an Amazon Aurora global database cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

This operation only applies to Aurora global database clusters.

", + "ModifyIntegration": "

Modifies a zero-ETL integration with Amazon Redshift.

Currently, you can only modify integrations that have Aurora MySQL source DB clusters. Integrations with Aurora PostgreSQL and RDS sources currently don't support modifying the integration.

", "ModifyOptionGroup": "

Modifies an existing option group.

", "ModifyTenantDatabase": "

Modifies an existing tenant database in a DB instance. You can change the tenant database name or the master user password. This operation is supported only for RDS for Oracle CDB instances using the multi-tenant configuration.

", "PromoteReadReplica": "

Promotes a read replica DB instance to a standalone DB instance.

", @@ -1971,6 +1972,14 @@ "refs": { } }, + "DataFilter": { + "base": null, + "refs": { + "CreateIntegrationMessage$DataFilter": "

Data filtering options for the integration. For more information, see Data filtering for Aurora zero-ETL integrations with Amazon Redshift.

Valid for: Integrations with Aurora MySQL source DB clusters only

", + "Integration$DataFilter": "

Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.

", + "ModifyIntegrationMessage$DataFilter": "

A new data filter for the integration. For more information, see Data filtering for Aurora zero-ETL integrations with Amazon Redshift.

" + } + }, "DatabaseArn": { "base": null, "refs": { @@ -3161,6 +3170,14 @@ "refs": { } }, + "IntegrationDescription": { + "base": null, + "refs": { + "CreateIntegrationMessage$Description": "

A description of the integration.

", + "Integration$Description": "

A description of the integration.

", + "ModifyIntegrationMessage$Description": "

A new description for the integration.

" + } + }, "IntegrationError": { "base": "

An error associated with a zero-ETL integration with Amazon Redshift.

", "refs": { @@ -3177,7 +3194,8 @@ "base": null, "refs": { "DeleteIntegrationMessage$IntegrationIdentifier": "

The unique identifier of the integration.

", - "DescribeIntegrationsMessage$IntegrationIdentifier": "

The unique identifier of the integration.

" + "DescribeIntegrationsMessage$IntegrationIdentifier": "

The unique identifier of the integration.

", + "ModifyIntegrationMessage$IntegrationIdentifier": "

The unique identifier of the integration to modify.

" } }, "IntegrationList": { @@ -3190,7 +3208,8 @@ "base": null, "refs": { "CreateIntegrationMessage$IntegrationName": "

The name of the integration.

", - "Integration$IntegrationName": "

The name of the integration.

" + "Integration$IntegrationName": "

The name of the integration.

", + "ModifyIntegrationMessage$IntegrationName": "

A new name for the integration.

" } }, "IntegrationNotFoundFault": { @@ -3693,6 +3712,11 @@ "refs": { } }, + "ModifyIntegrationMessage": { + "base": null, + "refs": { + } + }, "ModifyOptionGroupMessage": { "base": "

", "refs": { diff --git a/models/apis/rds/2014-10-31/examples-1.json b/models/apis/rds/2014-10-31/examples-1.json index 65d2712e6d..be127f96c6 100644 --- a/models/apis/rds/2014-10-31/examples-1.json +++ b/models/apis/rds/2014-10-31/examples-1.json @@ -1106,6 +1106,7 @@ }, "output": { "CreateTime": "2023-12-28T17:20:20.629Z", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", "IntegrationName": "my-integration", "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", @@ -1663,6 +1664,7 @@ }, "output": { "CreateTime": "2023-12-28T17:20:20.629Z", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", "IntegrationName": "my-integration", "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", @@ -3184,6 +3186,7 @@ "Integrations": [ { "CreateTime": "2023-12-28T17:20:20.629Z", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", "IntegrationName": "my-integration", "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", @@ -4269,6 +4272,36 @@ "title": "To modify a global database cluster" } ], + "ModifyIntegration": [ + { + "input": { + "IntegrationIdentifier": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "IntegrationName": "my-renamed-integration" + }, + "output": { + "CreateTime": "2023-12-28T17:20:20.629Z", + "DataFilter": "include: *.*", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", + "IntegrationName": "my-renamed-integration", + "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "Status": "active", + "Tags": [ + + ], + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example modifies the name of an existing zero-ETL integration.", + "id": "to-modify-a-zero-etl-integration-1680407173998", + "title": "To modify a zero-ETL integration" + } + ], "ModifyOptionGroup": [ { "input": { diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index ebf2ae5a7d..45b0caf668 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -3978,7 +3978,10 @@ "GetObjectLegalHoldOutput":{ "type":"structure", "members":{ - "LegalHold":{"shape":"ObjectLockLegalHold"} + "LegalHold":{ + "shape":"ObjectLockLegalHold", + "locationName":"LegalHold" + } }, "payload":"LegalHold" }, @@ -4349,7 +4352,10 @@ "GetObjectRetentionOutput":{ "type":"structure", "members":{ - "Retention":{"shape":"ObjectLockRetention"} + "Retention":{ + "shape":"ObjectLockRetention", + "locationName":"Retention" + } }, "payload":"Retention" }, diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index 45bbe7bc66..f36dc25e35 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -84,13 +84,10 @@ "CreateBucket": [ { "input": { - "Bucket": "examplebucket", - "CreateBucketConfiguration": { - "LocationConstraint": "eu-west-1" - } + "Bucket": "examplebucket" }, "output": { - "Location": "http://examplebucket..s3.amazonaws.com/" + "Location": "/examplebucket" }, "comments": { "input": { @@ -98,16 +95,19 @@ "output": { } }, - "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", - "id": "to-create-a-bucket-in-a-specific-region-1483399072992", - "title": "To create a bucket in a specific region" + "description": "The following example creates a bucket.", + "id": "to-create-a-bucket--1472851826060", + "title": "To create a bucket " }, { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } }, "output": { - "Location": "/examplebucket" + "Location": "http://examplebucket..s3.amazonaws.com/" }, "comments": { "input": { @@ -115,9 +115,9 @@ "output": { } }, - "description": "The following example creates a bucket.", - "id": "to-create-a-bucket--1472851826060", - "title": "To create a bucket " + "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "id": "to-create-a-bucket-in-a-specific-region-1483399072992", + "title": "To create a bucket in a specific region" } ], "CreateMultipartUpload": [ @@ -257,8 +257,10 @@ "DeleteObject": [ { "input": { - "Bucket": "ExampleBucket", - "Key": "HappyFace.jpg" + "Bucket": "examplebucket", + "Key": "objectkey.jpg" + }, + "output": { }, "comments": { "input": { @@ -266,16 +268,14 @@ "output": { } }, - "description": "The following example deletes an object from a non-versioned bucket.", - "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", - "title": "To delete an object (from a non-versioned bucket)" + "description": "The following example deletes an object from an S3 bucket.", + "id": "to-delete-an-object-1472850136595", + "title": "To delete an object" }, { "input": { - "Bucket": "examplebucket", - "Key": "objectkey.jpg" - }, - "output": { + "Bucket": "ExampleBucket", + "Key": "HappyFace.jpg" }, "comments": { "input": { @@ -283,9 +283,9 @@ "output": { } }, - "description": "The following example deletes an object from an S3 bucket.", - "id": "to-delete-an-object-1472850136595", - "title": "To delete an object" + "description": "The following example deletes an object from a non-versioned bucket.", + "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", + "title": "To delete an object (from a non-versioned bucket)" } ], "DeleteObjectTagging": [ @@ -334,10 +334,12 @@ "Delete": { "Objects": [ { - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" }, { - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" } ], "Quiet": false @@ -346,14 +348,12 @@ "output": { "Deleted": [ { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" }, { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" } ] }, @@ -363,9 +363,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", - "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", - "title": "To delete multiple objects from a versioned bucket" + "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", + "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", + "title": "To delete multiple object versions from a versioned bucket" }, { "input": { @@ -373,12 +373,10 @@ "Delete": { "Objects": [ { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "Key": "objectkey2" } ], "Quiet": false @@ -387,12 +385,14 @@ "output": { "Deleted": [ { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2" } ] }, @@ -402,9 +402,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", - "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", - "title": "To delete multiple object versions from a versioned bucket" + "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", + "title": "To delete multiple objects from a versioned bucket" } ], "GetBucketCors": [ @@ -728,17 +728,18 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "SampleFile.txt", + "Range": "bytes=0-9" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "3191", - "ContentType": "image/jpeg", - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", + "ContentLength": "10", + "ContentRange": "bytes 0-9/43", + "ContentType": "text/plain", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", "Metadata": { }, - "TagCount": 2, "VersionId": "null" }, "comments": { @@ -747,25 +748,24 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket.", - "id": "to-retrieve-an-object-1481827837012", - "title": "To retrieve an object" + "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", + "title": "To retrieve a byte range of an object " }, { "input": { "Bucket": "examplebucket", - "Key": "SampleFile.txt", - "Range": "bytes=0-9" + "Key": "HappyFace.jpg" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "10", - "ContentRange": "bytes 0-9/43", - "ContentType": "text/plain", - "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", - "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", + "ContentLength": "3191", + "ContentType": "image/jpeg", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", "Metadata": { }, + "TagCount": 2, "VersionId": "null" }, "comments": { @@ -774,9 +774,9 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", - "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", - "title": "To retrieve a byte range of an object " + "description": "The following example retrieves an object for an S3 bucket.", + "id": "to-retrieve-an-object-1481827837012", + "title": "To retrieve an object" } ], "GetObjectAcl": [ @@ -840,20 +840,17 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "exampleobject", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { "TagSet": [ { - "Key": "Key4", - "Value": "Value4" - }, - { - "Key": "Key3", - "Value": "Value3" + "Key": "Key1", + "Value": "Value1" } ], - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -861,24 +858,27 @@ "output": { } }, - "description": "The following example retrieves tag set of an object.", - "id": "to-retrieve-tag-set-of-an-object-1481833847896", - "title": "To retrieve tag set of an object" + "description": "The following example retrieves tag set of an object. The request specifies object version.", + "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", + "title": "To retrieve tag set of a specific object version" }, { "input": { "Bucket": "examplebucket", - "Key": "exampleobject", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { "TagSet": [ { - "Key": "Key1", - "Value": "Value1" + "Key": "Key4", + "Value": "Value4" + }, + { + "Key": "Key3", + "Value": "Value3" } ], - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -886,9 +886,9 @@ "output": { } }, - "description": "The following example retrieves tag set of an object. The request specifies object version.", - "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", - "title": "To retrieve tag set of a specific object version" + "description": "The following example retrieves tag set of an object.", + "id": "to-retrieve-tag-set-of-an-object-1481833847896", + "title": "To retrieve tag set of an object" } ], "GetObjectTorrent": [ @@ -1567,16 +1567,36 @@ "PutObject": [ { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject", + "Key": "HappyFace.jpg" + }, + "output": { + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" + }, + { + "input": { + "Body": "HappyFace.jpg", + "Bucket": "examplebucket", + "Key": "HappyFace.jpg", "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "StorageClass": "STANDARD_IA" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" }, "comments": { "input": { @@ -1584,9 +1604,9 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "id": "to-upload-an-object-(specify-optional-headers)", + "title": "To upload an object (specify optional headers)" }, { "input": { @@ -1633,26 +1653,6 @@ "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", "title": "To upload an object and specify canned ACL." }, - { - "input": { - "Body": "HappyFace.jpg", - "Bucket": "examplebucket", - "Key": "HappyFace.jpg" - }, - "output": { - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" - }, - "comments": { - "input": { - }, - "output": { - } - }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" - }, { "input": { "Body": "filetoupload", @@ -1675,16 +1675,16 @@ }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", + "Key": "exampleobject", "ServerSideEncryption": "AES256", - "StorageClass": "STANDARD_IA" + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", "ServerSideEncryption": "AES256", - "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1692,9 +1692,9 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", - "id": "to-upload-an-object-(specify-optional-headers)", - "title": "To upload an object (specify optional headers)" + "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" }, { "input": { diff --git a/models/apis/timestream-query/2018-11-01/docs-2.json b/models/apis/timestream-query/2018-11-01/docs-2.json index fd0b0e43f5..0afc651f34 100644 --- a/models/apis/timestream-query/2018-11-01/docs-2.json +++ b/models/apis/timestream-query/2018-11-01/docs-2.json @@ -10,7 +10,7 @@ "ExecuteScheduledQuery": "

You can use this API to run a scheduled query manually.

", "ListScheduledQueries": "

Gets a list of all scheduled queries in the caller's Amazon account and Region. ListScheduledQueries is eventually consistent.

", "ListTagsForResource": "

List all tags on a Timestream query resource.

", - "PrepareQuery": "

A synchronous operation that allows you to submit a query with parameters to be stored by Timestream for later running. Timestream only supports using this operation with the PrepareQueryRequest$ValidateOnly set to true.

", + "PrepareQuery": "

A synchronous operation that allows you to submit a query with parameters to be stored by Timestream for later running. Timestream only supports using this operation with ValidateOnly set to true.

", "Query": "

Query is a synchronous operation that enables you to run a query against your Amazon Timestream data. Query will time out after 60 seconds. You must update the default timeout in the SDK to support a timeout of 60 seconds. See the code sample for details.

Your query request will fail in the following cases:

", "TagResource": "

Associate a set of tags with a Timestream resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking.

", "UntagResource": "

Removes the association of tags from a Timestream query resource.

", @@ -477,7 +477,7 @@ "ScalarType": { "base": null, "refs": { - "Type$ScalarType": "

Indicates if the column is of type string, integer, Boolean, double, timestamp, date, time.

" + "Type$ScalarType": "

Indicates if the column is of type string, integer, Boolean, double, timestamp, date, time. For more information, see Supported data types.

" } }, "ScalarValue": { diff --git a/models/apis/timestream-query/2018-11-01/endpoint-rule-set-1.json b/models/apis/timestream-query/2018-11-01/endpoint-rule-set-1.json new file mode 100644 index 0000000000..87880d2bfa --- /dev/null +++ b/models/apis/timestream-query/2018-11-01/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/timestream-query/2018-11-01/endpoint-tests-1.json b/models/apis/timestream-query/2018-11-01/endpoint-tests-1.json new file mode 100644 index 0000000000..da7e3111d8 --- /dev/null +++ b/models/apis/timestream-query/2018-11-01/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://query.timestream.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index dc6f671cfd..5b2605689a 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -2099,6 +2099,12 @@ "tags" : [ "dualstack" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "athena.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "eu-central-1" : { "variants" : [ { "hostname" : "athena.eu-central-1.api.aws", @@ -12802,6 +12808,12 @@ }, "hostname" : "oidc.ap-southeast-3.amazonaws.com" }, + "ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "hostname" : "oidc.ap-southeast-4.amazonaws.com" + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -13459,6 +13471,12 @@ }, "hostname" : "portal.sso.ap-southeast-3.amazonaws.com" }, + "ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "hostname" : "portal.sso.ap-southeast-4.amazonaws.com" + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -17943,6 +17961,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, @@ -27896,6 +27915,30 @@ "us-isob-east-1" : { } } }, + "storagegateway" : { + "endpoints" : { + "fips" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov" + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + }, + "us-isob-east-1-fips" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov" + } + } + }, "streams.dynamodb" : { "defaults" : { "credentialScope" : { diff --git a/service/cloudformation/api.go b/service/cloudformation/api.go index da57a5b67c..6753b2d8d5 100644 --- a/service/cloudformation/api.go +++ b/service/cloudformation/api.go @@ -5589,6 +5589,84 @@ func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, inp return p.Err() } +const opListStackSetAutoDeploymentTargets = "ListStackSetAutoDeploymentTargets" + +// ListStackSetAutoDeploymentTargetsRequest generates a "aws/request.Request" representing the +// client's request for the ListStackSetAutoDeploymentTargets 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 ListStackSetAutoDeploymentTargets for more information on using the ListStackSetAutoDeploymentTargets +// 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 ListStackSetAutoDeploymentTargetsRequest method. +// req, resp := client.ListStackSetAutoDeploymentTargetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetAutoDeploymentTargets +func (c *CloudFormation) ListStackSetAutoDeploymentTargetsRequest(input *ListStackSetAutoDeploymentTargetsInput) (req *request.Request, output *ListStackSetAutoDeploymentTargetsOutput) { + op := &request.Operation{ + Name: opListStackSetAutoDeploymentTargets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListStackSetAutoDeploymentTargetsInput{} + } + + output = &ListStackSetAutoDeploymentTargetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListStackSetAutoDeploymentTargets API operation for AWS CloudFormation. +// +// Returns summary information about deployment targets for a stack set. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS CloudFormation's +// API operation ListStackSetAutoDeploymentTargets for usage and error information. +// +// Returned Error Codes: +// - ErrCodeStackSetNotFoundException "StackSetNotFoundException" +// The specified stack set doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetAutoDeploymentTargets +func (c *CloudFormation) ListStackSetAutoDeploymentTargets(input *ListStackSetAutoDeploymentTargetsInput) (*ListStackSetAutoDeploymentTargetsOutput, error) { + req, out := c.ListStackSetAutoDeploymentTargetsRequest(input) + return out, req.Send() +} + +// ListStackSetAutoDeploymentTargetsWithContext is the same as ListStackSetAutoDeploymentTargets with the addition of +// the ability to pass a context and additional request options. +// +// See ListStackSetAutoDeploymentTargets 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 *CloudFormation) ListStackSetAutoDeploymentTargetsWithContext(ctx aws.Context, input *ListStackSetAutoDeploymentTargetsInput, opts ...request.Option) (*ListStackSetAutoDeploymentTargetsOutput, error) { + req, out := c.ListStackSetAutoDeploymentTargetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListStackSetOperationResults = "ListStackSetOperationResults" // ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the @@ -9993,7 +10071,7 @@ type CreateStackInput struct { // specify either of these capabilities, CloudFormation returns an InsufficientCapabilities // error. If your stack template contains these resources, we recommend that // you review all permissions associated with them and edit their permissions - // if necessary. AWS::IAM::AccessKey AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + // if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) // AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) // AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) @@ -17386,6 +17464,145 @@ func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceS return s } +type ListStackSetAutoDeploymentTargetsInput struct { + _ struct{} `type:"structure"` + + // Specifies whether you are acting as an account administrator in the organization's + // management account or as a delegated administrator in a member account. + // + // By default, SELF is specified. Use SELF for StackSets with self-managed permissions. + // + // * If you are signed in to the management account, specify SELF. + // + // * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. + // Your Amazon Web Services account must be registered as a delegated administrator + // in the management account. For more information, see Register a delegated + // administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + // in the CloudFormation User Guide. + CallAs *string `type:"string" enum:"CallAs"` + + // The maximum number of results to be returned with a single call. If the number + // of available results exceeds this maximum, the response includes a NextToken + // value that you can assign to the NextToken request parameter to get the next + // set of results. + MaxResults *int64 `min:"1" type:"integer"` + + // A string that identifies the next page of stack set deployment targets that + // you want to retrieve. + NextToken *string `min:"1" type:"string"` + + // The name or unique ID of the stack set that you want to get automatic deployment + // targets for. + // + // StackSetName is a required field + StackSetName *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 ListStackSetAutoDeploymentTargetsInput) 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 ListStackSetAutoDeploymentTargetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListStackSetAutoDeploymentTargetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListStackSetAutoDeploymentTargetsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.StackSetName == nil { + invalidParams.Add(request.NewErrParamRequired("StackSetName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCallAs sets the CallAs field's value. +func (s *ListStackSetAutoDeploymentTargetsInput) SetCallAs(v string) *ListStackSetAutoDeploymentTargetsInput { + s.CallAs = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListStackSetAutoDeploymentTargetsInput) SetMaxResults(v int64) *ListStackSetAutoDeploymentTargetsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListStackSetAutoDeploymentTargetsInput) SetNextToken(v string) *ListStackSetAutoDeploymentTargetsInput { + s.NextToken = &v + return s +} + +// SetStackSetName sets the StackSetName field's value. +func (s *ListStackSetAutoDeploymentTargetsInput) SetStackSetName(v string) *ListStackSetAutoDeploymentTargetsInput { + s.StackSetName = &v + return s +} + +type ListStackSetAutoDeploymentTargetsOutput struct { + _ struct{} `type:"structure"` + + // If the request doesn't return all the remaining results, NextToken is set + // to a token. To retrieve the next set of results, call ListStackSetAutoDeploymentTargets + // (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStackSetAutoDeploymentTargets.html) + // again and use that value for the NextToken parameter. If the request returns + // all results, NextToken is set to an empty string. + NextToken *string `min:"1" type:"string"` + + // An array of summaries of the deployment targets for the stack set. + Summaries []*StackSetAutoDeploymentTargetSummary `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 ListStackSetAutoDeploymentTargetsOutput) 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 ListStackSetAutoDeploymentTargetsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListStackSetAutoDeploymentTargetsOutput) SetNextToken(v string) *ListStackSetAutoDeploymentTargetsOutput { + s.NextToken = &v + return s +} + +// SetSummaries sets the Summaries field's value. +func (s *ListStackSetAutoDeploymentTargetsOutput) SetSummaries(v []*StackSetAutoDeploymentTargetSummary) *ListStackSetAutoDeploymentTargetsOutput { + s.Summaries = v + return s +} + type ListStackSetOperationResultsInput struct { _ struct{} `type:"structure"` @@ -22117,6 +22334,12 @@ type StackInstanceComprehensiveStatus struct { // the stack set operation fails in enough accounts within a Region, the // failure tolerance for the stack set operation as a whole might be exceeded. // + // * FAILED_IMPORT: The import of the stack instance in the specified account + // and Region failed and left the stack in an unstable state. Once the issues + // causing the failure are fixed, the import operation can be retried. If + // enough stack set operations fail in enough accounts within a Region, the + // failure tolerance for the stack set operation as a whole might be exceeded. + // // * INOPERABLE: A DeleteStackInstances operation has failed and left the // stack in an unstable state. Stacks in this state are excluded from further // UpdateStackSet operations. You might need to perform a DeleteStackInstances @@ -23399,6 +23622,50 @@ func (s *StackSet) SetTemplateBody(v string) *StackSet { return s } +// One of the targets for the stack set. Returned by the ListStackSetAutoDeploymentTargets +// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStackSetAutoDeploymentTargets.html) +// API operation. +type StackSetAutoDeploymentTargetSummary struct { + _ struct{} `type:"structure"` + + // The organization root ID or organizational unit (OU) IDs where the stack + // set is targeted. + OrganizationalUnitId *string `type:"string"` + + // The list of Regions targeted for this organization or OU. + Regions []*string `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 StackSetAutoDeploymentTargetSummary) 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 StackSetAutoDeploymentTargetSummary) GoString() string { + return s.String() +} + +// SetOrganizationalUnitId sets the OrganizationalUnitId field's value. +func (s *StackSetAutoDeploymentTargetSummary) SetOrganizationalUnitId(v string) *StackSetAutoDeploymentTargetSummary { + s.OrganizationalUnitId = &v + return s +} + +// SetRegions sets the Regions field's value. +func (s *StackSetAutoDeploymentTargetSummary) SetRegions(v []*string) *StackSetAutoDeploymentTargetSummary { + s.Regions = v + return s +} + // Detailed information about the drift status of the stack set. // // For stack sets, contains information about the last completed drift operation diff --git a/service/cloudformation/cloudformationiface/interface.go b/service/cloudformation/cloudformationiface/interface.go index 03975a06b3..e93adfbafe 100644 --- a/service/cloudformation/cloudformationiface/interface.go +++ b/service/cloudformation/cloudformationiface/interface.go @@ -323,6 +323,10 @@ type CloudFormationAPI interface { ListStackResourcesPages(*cloudformation.ListStackResourcesInput, func(*cloudformation.ListStackResourcesOutput, bool) bool) error ListStackResourcesPagesWithContext(aws.Context, *cloudformation.ListStackResourcesInput, func(*cloudformation.ListStackResourcesOutput, bool) bool, ...request.Option) error + ListStackSetAutoDeploymentTargets(*cloudformation.ListStackSetAutoDeploymentTargetsInput) (*cloudformation.ListStackSetAutoDeploymentTargetsOutput, error) + ListStackSetAutoDeploymentTargetsWithContext(aws.Context, *cloudformation.ListStackSetAutoDeploymentTargetsInput, ...request.Option) (*cloudformation.ListStackSetAutoDeploymentTargetsOutput, error) + ListStackSetAutoDeploymentTargetsRequest(*cloudformation.ListStackSetAutoDeploymentTargetsInput) (*request.Request, *cloudformation.ListStackSetAutoDeploymentTargetsOutput) + ListStackSetOperationResults(*cloudformation.ListStackSetOperationResultsInput) (*cloudformation.ListStackSetOperationResultsOutput, error) ListStackSetOperationResultsWithContext(aws.Context, *cloudformation.ListStackSetOperationResultsInput, ...request.Option) (*cloudformation.ListStackSetOperationResultsOutput, error) ListStackSetOperationResultsRequest(*cloudformation.ListStackSetOperationResultsInput) (*request.Request, *cloudformation.ListStackSetOperationResultsOutput) diff --git a/service/kms/api.go b/service/kms/api.go index df96655802..e6eee375ec 100644 --- a/service/kms/api.go +++ b/service/kms/api.go @@ -5255,9 +5255,7 @@ func (c *KMS) ImportKeyMaterialRequest(input *ImportKeyMaterialInput) (req *requ // into that KMS key, but you cannot import different key material. You might // reimport key material to replace key material that expired or key material // that you deleted. You might also reimport key material to change the expiration -// model or expiration date of the key material. Before reimporting key material, -// if necessary, call DeleteImportedKeyMaterial to delete the current imported -// key material. +// model or expiration date of the key material. // // Each time you import key material into KMS, you can determine whether (ExpirationModel) // and when (ValidTo) the key material expires. To change the expiration of @@ -7330,7 +7328,7 @@ func (c *KMS) RevokeGrantRequest(input *RevokeGrantInput) (req *request.Request, // // Deletes the specified grant. You revoke a grant to terminate the permissions // that the grant allows. For more information, see Retiring and revoking grants -// (https://docs.aws.amazon.com/kms/latest/developerguide/managing-grants.html#grant-delete) +// (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete) // in the Key Management Service Developer Guide . // // When you create, retire, or revoke a grant, there might be a brief delay, @@ -14463,11 +14461,10 @@ type GetKeyPolicyInput struct { // KeyId is a required field KeyId *string `min:"1" type:"string" required:"true"` - // Specifies the name of the key policy. The only valid name is default. To - // get the names of key policies, use ListKeyPolicies. - // - // PolicyName is a required field - PolicyName *string `min:"1" type:"string" required:"true"` + // Specifies the name of the key policy. If no policy name is specified, the + // default value is default. The only valid name is default. To get the names + // of key policies, use ListKeyPolicies. + PolicyName *string `min:"1" type:"string"` } // String returns the string representation. @@ -14497,9 +14494,6 @@ func (s *GetKeyPolicyInput) Validate() error { if s.KeyId != nil && len(*s.KeyId) < 1 { invalidParams.Add(request.NewErrParamMinLen("KeyId", 1)) } - if s.PolicyName == nil { - invalidParams.Add(request.NewErrParamRequired("PolicyName")) - } if s.PolicyName != nil && len(*s.PolicyName) < 1 { invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1)) } @@ -14527,6 +14521,9 @@ type GetKeyPolicyOutput struct { // A key policy document in JSON format. Policy *string `min:"1" type:"string"` + + // The name of the key policy. The only valid value is default. + PolicyName *string `min:"1" type:"string"` } // String returns the string representation. @@ -14553,6 +14550,12 @@ func (s *GetKeyPolicyOutput) SetPolicy(v string) *GetKeyPolicyOutput { return s } +// SetPolicyName sets the PolicyName field's value. +func (s *GetKeyPolicyOutput) SetPolicyName(v string) *GetKeyPolicyOutput { + s.PolicyName = &v + return s +} + type GetKeyRotationStatusInput struct { _ struct{} `type:"structure"` @@ -18006,10 +18009,9 @@ type PutKeyPolicyInput struct { // Policy is a required field Policy *string `min:"1" type:"string" required:"true"` - // The name of the key policy. The only valid value is default. - // - // PolicyName is a required field - PolicyName *string `min:"1" type:"string" required:"true"` + // The name of the key policy. If no policy name is specified, the default value + // is default. The only valid value is default. + PolicyName *string `min:"1" type:"string"` } // String returns the string representation. @@ -18045,9 +18047,6 @@ func (s *PutKeyPolicyInput) Validate() error { if s.Policy != nil && len(*s.Policy) < 1 { invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) } - if s.PolicyName == nil { - invalidParams.Add(request.NewErrParamRequired("PolicyName")) - } if s.PolicyName != nil && len(*s.PolicyName) < 1 { invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1)) } diff --git a/service/mediatailor/api.go b/service/mediatailor/api.go index e46ecf34c8..50b33ae271 100644 --- a/service/mediatailor/api.go +++ b/service/mediatailor/api.go @@ -4140,6 +4140,175 @@ func (s *Alert) SetResourceArn(v string) *Alert { return s } +// A playlist of media (VOD and/or live) to be played instead of the default +// media on a particular program. +type AlternateMedia struct { + _ struct{} `type:"structure"` + + // Ad break configuration parameters defined in AlternateMedia. + AdBreaks []*AdBreak `type:"list"` + + // Clip range configuration for the VOD source associated with the program. + ClipRange *ClipRange `type:"structure"` + + // The duration of the alternateMedia in milliseconds. + DurationMillis *int64 `type:"long"` + + // The name of the live source for alternateMedia. + LiveSourceName *string `type:"string"` + + // The date and time that the alternateMedia is scheduled to start, in epoch + // milliseconds. + ScheduledStartTimeMillis *int64 `type:"long"` + + // The name of the source location for alternateMedia. + SourceLocationName *string `type:"string"` + + // The name of the VOD source for alternateMedia. + VodSourceName *string `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 AlternateMedia) 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 AlternateMedia) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AlternateMedia) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AlternateMedia"} + if s.AdBreaks != nil { + for i, v := range s.AdBreaks { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdBreaks", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAdBreaks sets the AdBreaks field's value. +func (s *AlternateMedia) SetAdBreaks(v []*AdBreak) *AlternateMedia { + s.AdBreaks = v + return s +} + +// SetClipRange sets the ClipRange field's value. +func (s *AlternateMedia) SetClipRange(v *ClipRange) *AlternateMedia { + s.ClipRange = v + return s +} + +// SetDurationMillis sets the DurationMillis field's value. +func (s *AlternateMedia) SetDurationMillis(v int64) *AlternateMedia { + s.DurationMillis = &v + return s +} + +// SetLiveSourceName sets the LiveSourceName field's value. +func (s *AlternateMedia) SetLiveSourceName(v string) *AlternateMedia { + s.LiveSourceName = &v + return s +} + +// SetScheduledStartTimeMillis sets the ScheduledStartTimeMillis field's value. +func (s *AlternateMedia) SetScheduledStartTimeMillis(v int64) *AlternateMedia { + s.ScheduledStartTimeMillis = &v + return s +} + +// SetSourceLocationName sets the SourceLocationName field's value. +func (s *AlternateMedia) SetSourceLocationName(v string) *AlternateMedia { + s.SourceLocationName = &v + return s +} + +// SetVodSourceName sets the VodSourceName field's value. +func (s *AlternateMedia) SetVodSourceName(v string) *AlternateMedia { + s.VodSourceName = &v + return s +} + +// An AudienceMedia object contains an Audience and a list of AlternateMedia. +type AudienceMedia struct { + _ struct{} `type:"structure"` + + // The list of AlternateMedia defined in AudienceMedia. + AlternateMedia []*AlternateMedia `type:"list"` + + // The Audience defined in AudienceMedia. + Audience *string `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 AudienceMedia) 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 AudienceMedia) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AudienceMedia) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AudienceMedia"} + if s.AlternateMedia != nil { + for i, v := range s.AlternateMedia { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlternateMedia", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAlternateMedia sets the AlternateMedia field's value. +func (s *AudienceMedia) SetAlternateMedia(v []*AlternateMedia) *AudienceMedia { + s.AlternateMedia = v + return s +} + +// SetAudience sets the Audience field's value. +func (s *AudienceMedia) SetAudience(v string) *AudienceMedia { + s.Audience = &v + return s +} + // MediaTailor only places (consumes) prefetched ads if the ad break meets the // criteria defined by the dynamic variables. This gives you granular control // over which ad break to place the prefetched ads into. @@ -4456,6 +4625,9 @@ type Channel struct { // Arn is a required field Arn *string `type:"string" required:"true"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name of the channel. // // ChannelName is a required field @@ -4533,6 +4705,12 @@ func (s *Channel) SetArn(v string) *Channel { return s } +// SetAudiences sets the Audiences field's value. +func (s *Channel) SetAudiences(v []*string) *Channel { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *Channel) SetChannelName(v string) *Channel { s.ChannelName = &v @@ -4599,9 +4777,11 @@ type ClipRange struct { // The end offset of the clip range, in milliseconds, starting from the beginning // of the VOD source associated with the program. - // - // EndOffsetMillis is a required field - EndOffsetMillis *int64 `type:"long" required:"true"` + EndOffsetMillis *int64 `type:"long"` + + // The start offset of the clip range, in milliseconds. This offset truncates + // the start at the number of milliseconds into the duration of the VOD source. + StartOffsetMillis *int64 `type:"long"` } // String returns the string representation. @@ -4622,25 +4802,18 @@ func (s ClipRange) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ClipRange) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ClipRange"} - if s.EndOffsetMillis == nil { - invalidParams.Add(request.NewErrParamRequired("EndOffsetMillis")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetEndOffsetMillis sets the EndOffsetMillis field's value. func (s *ClipRange) SetEndOffsetMillis(v int64) *ClipRange { s.EndOffsetMillis = &v return s } +// SetStartOffsetMillis sets the StartOffsetMillis field's value. +func (s *ClipRange) SetStartOffsetMillis(v int64) *ClipRange { + s.StartOffsetMillis = &v + return s +} + type ConfigureLogsForChannelInput struct { _ struct{} `type:"structure"` @@ -4855,6 +5028,9 @@ func (s *ConfigureLogsForPlaybackConfigurationOutput) SetPlaybackConfigurationNa type CreateChannelInput struct { _ struct{} `type:"structure"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name of the channel. // // ChannelName is a required field @@ -4949,6 +5125,12 @@ func (s *CreateChannelInput) Validate() error { return nil } +// SetAudiences sets the Audiences field's value. +func (s *CreateChannelInput) SetAudiences(v []*string) *CreateChannelInput { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *CreateChannelInput) SetChannelName(v string) *CreateChannelInput { s.ChannelName = &v @@ -4997,6 +5179,9 @@ type CreateChannelOutput struct { // The Amazon Resource Name (ARN) to assign to the channel. Arn *string `type:"string"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name to assign to the channel. ChannelName *string `type:"string"` @@ -5056,6 +5241,12 @@ func (s *CreateChannelOutput) SetArn(v string) *CreateChannelOutput { return s } +// SetAudiences sets the Audiences field's value. +func (s *CreateChannelOutput) SetAudiences(v []*string) *CreateChannelOutput { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *CreateChannelOutput) SetChannelName(v string) *CreateChannelOutput { s.ChannelName = &v @@ -5521,6 +5712,9 @@ type CreateProgramInput struct { // The ad break configuration settings. AdBreaks []*AdBreak `type:"list"` + // The list of AudienceMedia defined in program. + AudienceMedia []*AudienceMedia `type:"list"` + // The name of the channel for this Program. // // ChannelName is a required field @@ -5597,6 +5791,16 @@ func (s *CreateProgramInput) Validate() error { } } } + if s.AudienceMedia != nil { + for i, v := range s.AudienceMedia { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AudienceMedia", i), err.(request.ErrInvalidParams)) + } + } + } if s.ScheduleConfiguration != nil { if err := s.ScheduleConfiguration.Validate(); err != nil { invalidParams.AddNested("ScheduleConfiguration", err.(request.ErrInvalidParams)) @@ -5615,6 +5819,12 @@ func (s *CreateProgramInput) SetAdBreaks(v []*AdBreak) *CreateProgramInput { return s } +// SetAudienceMedia sets the AudienceMedia field's value. +func (s *CreateProgramInput) SetAudienceMedia(v []*AudienceMedia) *CreateProgramInput { + s.AudienceMedia = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *CreateProgramInput) SetChannelName(v string) *CreateProgramInput { s.ChannelName = &v @@ -5660,6 +5870,9 @@ type CreateProgramOutput struct { // The ARN to assign to the program. Arn *string `type:"string"` + // The list of AudienceMedia defined in program. + AudienceMedia []*AudienceMedia `type:"list"` + // The name to assign to the channel for this program. ChannelName *string `type:"string"` @@ -5718,6 +5931,12 @@ func (s *CreateProgramOutput) SetArn(v string) *CreateProgramOutput { return s } +// SetAudienceMedia sets the AudienceMedia field's value. +func (s *CreateProgramOutput) SetAudienceMedia(v []*AudienceMedia) *CreateProgramOutput { + s.AudienceMedia = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *CreateProgramOutput) SetChannelName(v string) *CreateProgramOutput { s.ChannelName = &v @@ -7086,6 +7305,9 @@ type DescribeChannelOutput struct { // The ARN of the channel. Arn *string `type:"string"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name of the channel. ChannelName *string `type:"string"` @@ -7150,6 +7372,12 @@ func (s *DescribeChannelOutput) SetArn(v string) *DescribeChannelOutput { return s } +// SetAudiences sets the Audiences field's value. +func (s *DescribeChannelOutput) SetAudiences(v []*string) *DescribeChannelOutput { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *DescribeChannelOutput) SetChannelName(v string) *DescribeChannelOutput { s.ChannelName = &v @@ -7445,6 +7673,9 @@ type DescribeProgramOutput struct { // The ARN of the program. Arn *string `type:"string"` + // The list of AudienceMedia defined in program. + AudienceMedia []*AudienceMedia `type:"list"` + // The name of the channel that the program belongs to. ChannelName *string `type:"string"` @@ -7505,6 +7736,12 @@ func (s *DescribeProgramOutput) SetArn(v string) *DescribeProgramOutput { return s } +// SetAudienceMedia sets the AudienceMedia field's value. +func (s *DescribeProgramOutput) SetAudienceMedia(v []*AudienceMedia) *DescribeProgramOutput { + s.AudienceMedia = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *DescribeProgramOutput) SetChannelName(v string) *DescribeProgramOutput { s.ChannelName = &v @@ -7961,6 +8198,9 @@ func (s *GetChannelPolicyOutput) SetPolicy(v string) *GetChannelPolicyOutput { type GetChannelScheduleInput struct { _ struct{} `type:"structure" nopayload:"true"` + // The single audience for GetChannelScheduleRequest. + Audience *string `location:"querystring" locationName:"audience" type:"string"` + // The name of the channel associated with this Channel Schedule. // // ChannelName is a required field @@ -8025,6 +8265,12 @@ func (s *GetChannelScheduleInput) Validate() error { return nil } +// SetAudience sets the Audience field's value. +func (s *GetChannelScheduleInput) SetAudience(v string) *GetChannelScheduleInput { + s.Audience = &v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *GetChannelScheduleInput) SetChannelName(v string) *GetChannelScheduleInput { s.ChannelName = &v @@ -11121,11 +11367,6 @@ func (s *ScheduleConfiguration) Validate() error { if s.Transition == nil { invalidParams.Add(request.NewErrParamRequired("Transition")) } - if s.ClipRange != nil { - if err := s.ClipRange.Validate(); err != nil { - invalidParams.AddNested("ClipRange", err.(request.ErrInvalidParams)) - } - } if s.Transition != nil { if err := s.Transition.Validate(); err != nil { invalidParams.AddNested("Transition", err.(request.ErrInvalidParams)) @@ -11165,6 +11406,9 @@ type ScheduleEntry struct { // Arn is a required field Arn *string `type:"string" required:"true"` + // The list of audiences defined in ScheduleEntry. + Audiences []*string `type:"list"` + // The name of the channel that uses this schedule. // // ChannelName is a required field @@ -11229,6 +11473,12 @@ func (s *ScheduleEntry) SetArn(v string) *ScheduleEntry { return s } +// SetAudiences sets the Audiences field's value. +func (s *ScheduleEntry) SetAudiences(v []*string) *ScheduleEntry { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *ScheduleEntry) SetChannelName(v string) *ScheduleEntry { s.ChannelName = &v @@ -12231,6 +12481,9 @@ func (s UntagResourceOutput) GoString() string { type UpdateChannelInput struct { _ struct{} `type:"structure"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name of the channel. // // ChannelName is a required field @@ -12302,6 +12555,12 @@ func (s *UpdateChannelInput) Validate() error { return nil } +// SetAudiences sets the Audiences field's value. +func (s *UpdateChannelInput) SetAudiences(v []*string) *UpdateChannelInput { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *UpdateChannelInput) SetChannelName(v string) *UpdateChannelInput { s.ChannelName = &v @@ -12332,6 +12591,9 @@ type UpdateChannelOutput struct { // The Amazon Resource Name (ARN) associated with the channel. Arn *string `type:"string"` + // The list of audiences defined in channel. + Audiences []*string `type:"list"` + // The name of the channel. ChannelName *string `type:"string"` @@ -12397,6 +12659,12 @@ func (s *UpdateChannelOutput) SetArn(v string) *UpdateChannelOutput { return s } +// SetAudiences sets the Audiences field's value. +func (s *UpdateChannelOutput) SetAudiences(v []*string) *UpdateChannelOutput { + s.Audiences = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *UpdateChannelOutput) SetChannelName(v string) *UpdateChannelOutput { s.ChannelName = &v @@ -12641,6 +12909,9 @@ type UpdateProgramInput struct { // The ad break configuration settings. AdBreaks []*AdBreak `type:"list"` + // The list of AudienceMedia defined in program. + AudienceMedia []*AudienceMedia `type:"list"` + // The name of the channel for this Program. // // ChannelName is a required field @@ -12703,9 +12974,14 @@ func (s *UpdateProgramInput) Validate() error { } } } - if s.ScheduleConfiguration != nil { - if err := s.ScheduleConfiguration.Validate(); err != nil { - invalidParams.AddNested("ScheduleConfiguration", err.(request.ErrInvalidParams)) + if s.AudienceMedia != nil { + for i, v := range s.AudienceMedia { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AudienceMedia", i), err.(request.ErrInvalidParams)) + } } } @@ -12721,6 +12997,12 @@ func (s *UpdateProgramInput) SetAdBreaks(v []*AdBreak) *UpdateProgramInput { return s } +// SetAudienceMedia sets the AudienceMedia field's value. +func (s *UpdateProgramInput) SetAudienceMedia(v []*AudienceMedia) *UpdateProgramInput { + s.AudienceMedia = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *UpdateProgramInput) SetChannelName(v string) *UpdateProgramInput { s.ChannelName = &v @@ -12748,6 +13030,9 @@ type UpdateProgramOutput struct { // The ARN to assign to the program. Arn *string `type:"string"` + // The list of AudienceMedia defined in program. + AudienceMedia []*AudienceMedia `type:"list"` + // The name to assign to the channel for this program. ChannelName *string `type:"string"` @@ -12806,6 +13091,12 @@ func (s *UpdateProgramOutput) SetArn(v string) *UpdateProgramOutput { return s } +// SetAudienceMedia sets the AudienceMedia field's value. +func (s *UpdateProgramOutput) SetAudienceMedia(v []*AudienceMedia) *UpdateProgramOutput { + s.AudienceMedia = v + return s +} + // SetChannelName sets the ChannelName field's value. func (s *UpdateProgramOutput) SetChannelName(v string) *UpdateProgramOutput { s.ChannelName = &v @@ -12889,21 +13180,6 @@ func (s UpdateProgramScheduleConfiguration) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateProgramScheduleConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateProgramScheduleConfiguration"} - if s.ClipRange != nil { - if err := s.ClipRange.Validate(); err != nil { - invalidParams.AddNested("ClipRange", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetClipRange sets the ClipRange field's value. func (s *UpdateProgramScheduleConfiguration) SetClipRange(v *ClipRange) *UpdateProgramScheduleConfiguration { s.ClipRange = v @@ -13639,6 +13915,9 @@ const ( // ScheduleEntryTypeFillerSlate is a ScheduleEntryType enum value ScheduleEntryTypeFillerSlate = "FILLER_SLATE" + + // ScheduleEntryTypeAlternateMedia is a ScheduleEntryType enum value + ScheduleEntryTypeAlternateMedia = "ALTERNATE_MEDIA" ) // ScheduleEntryType_Values returns all elements of the ScheduleEntryType enum @@ -13646,6 +13925,7 @@ func ScheduleEntryType_Values() []string { return []string{ ScheduleEntryTypeProgram, ScheduleEntryTypeFillerSlate, + ScheduleEntryTypeAlternateMedia, } } diff --git a/service/rds/api.go b/service/rds/api.go index b335bdedbb..c999c0adb0 100644 --- a/service/rds/api.go +++ b/service/rds/api.go @@ -13996,6 +13996,98 @@ func (c *RDS) ModifyGlobalClusterWithContext(ctx aws.Context, input *ModifyGloba return out, req.Send() } +const opModifyIntegration = "ModifyIntegration" + +// ModifyIntegrationRequest generates a "aws/request.Request" representing the +// client's request for the ModifyIntegration 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 ModifyIntegration for more information on using the ModifyIntegration +// 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 ModifyIntegrationRequest method. +// req, resp := client.ModifyIntegrationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyIntegration +func (c *RDS) ModifyIntegrationRequest(input *ModifyIntegrationInput) (req *request.Request, output *ModifyIntegrationOutput) { + op := &request.Operation{ + Name: opModifyIntegration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyIntegrationInput{} + } + + output = &ModifyIntegrationOutput{} + req = c.newRequest(op, input, output) + return +} + +// ModifyIntegration API operation for Amazon Relational Database Service. +// +// Modifies a zero-ETL integration with Amazon Redshift. +// +// Currently, you can only modify integrations that have Aurora MySQL source +// DB clusters. Integrations with Aurora PostgreSQL and RDS sources currently +// don't support modifying the integration. +// +// 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 Relational Database Service's +// API operation ModifyIntegration for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeIntegrationNotFoundFault "IntegrationNotFoundFault" +// The specified integration could not be found. +// +// - ErrCodeInvalidIntegrationStateFault "InvalidIntegrationStateFault" +// The integration is in an invalid state and can't perform the requested operation. +// +// - ErrCodeIntegrationConflictOperationFault "IntegrationConflictOperationFault" +// A conflicting conditional operation is currently in progress against this +// resource. Typically occurs when there are multiple requests being made to +// the same resource at the same time, and these requests conflict with each +// other. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyIntegration +func (c *RDS) ModifyIntegration(input *ModifyIntegrationInput) (*ModifyIntegrationOutput, error) { + req, out := c.ModifyIntegrationRequest(input) + return out, req.Send() +} + +// ModifyIntegrationWithContext is the same as ModifyIntegration with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyIntegration 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 *RDS) ModifyIntegrationWithContext(ctx aws.Context, input *ModifyIntegrationInput, opts ...request.Option) (*ModifyIntegrationOutput, error) { + req, out := c.ModifyIntegrationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opModifyOptionGroup = "ModifyOptionGroup" // ModifyOptionGroupRequest generates a "aws/request.Request" representing the @@ -27199,6 +27291,15 @@ type CreateIntegrationInput struct { // You can only include this parameter if you specify the KMSKeyId parameter. AdditionalEncryptionContext map[string]*string `type:"map"` + // Data filtering options for the integration. For more information, see Data + // filtering for Aurora zero-ETL integrations with Amazon Redshift (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.filtering.html). + // + // Valid for: Integrations with Aurora MySQL source DB clusters only + DataFilter *string `min:"1" type:"string"` + + // A description of the integration. + Description *string `type:"string"` + // The name of the integration. // // IntegrationName is a required field @@ -27245,6 +27346,9 @@ func (s CreateIntegrationInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateIntegrationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateIntegrationInput"} + if s.DataFilter != nil && len(*s.DataFilter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataFilter", 1)) + } if s.IntegrationName == nil { invalidParams.Add(request.NewErrParamRequired("IntegrationName")) } @@ -27276,6 +27380,18 @@ func (s *CreateIntegrationInput) SetAdditionalEncryptionContext(v map[string]*st return s } +// SetDataFilter sets the DataFilter field's value. +func (s *CreateIntegrationInput) SetDataFilter(v string) *CreateIntegrationInput { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateIntegrationInput) SetDescription(v string) *CreateIntegrationInput { + s.Description = &v + return s +} + // SetIntegrationName sets the IntegrationName field's value. func (s *CreateIntegrationInput) SetIntegrationName(v string) *CreateIntegrationInput { s.IntegrationName = &v @@ -27319,6 +27435,13 @@ type CreateIntegrationOutput struct { // (UTC). CreateTime *time.Time `type:"timestamp"` + // Data filters for the integration. These filters determine which tables from + // the source database are sent to the target Amazon Redshift data warehouse. + DataFilter *string `min:"1" type:"string"` + + // A description of the integration. + Description *string `type:"string"` + // Any errors associated with the integration. Errors []*IntegrationError `locationNameList:"IntegrationError" type:"list"` @@ -27376,6 +27499,18 @@ func (s *CreateIntegrationOutput) SetCreateTime(v time.Time) *CreateIntegrationO return s } +// SetDataFilter sets the DataFilter field's value. +func (s *CreateIntegrationOutput) SetDataFilter(v string) *CreateIntegrationOutput { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateIntegrationOutput) SetDescription(v string) *CreateIntegrationOutput { + s.Description = &v + return s +} + // SetErrors sets the Errors field's value. func (s *CreateIntegrationOutput) SetErrors(v []*IntegrationError) *CreateIntegrationOutput { s.Errors = v @@ -35762,6 +35897,13 @@ type DeleteIntegrationOutput struct { // (UTC). CreateTime *time.Time `type:"timestamp"` + // Data filters for the integration. These filters determine which tables from + // the source database are sent to the target Amazon Redshift data warehouse. + DataFilter *string `min:"1" type:"string"` + + // A description of the integration. + Description *string `type:"string"` + // Any errors associated with the integration. Errors []*IntegrationError `locationNameList:"IntegrationError" type:"list"` @@ -35819,6 +35961,18 @@ func (s *DeleteIntegrationOutput) SetCreateTime(v time.Time) *DeleteIntegrationO return s } +// SetDataFilter sets the DataFilter field's value. +func (s *DeleteIntegrationOutput) SetDataFilter(v string) *DeleteIntegrationOutput { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *DeleteIntegrationOutput) SetDescription(v string) *DeleteIntegrationOutput { + s.Description = &v + return s +} + // SetErrors sets the Errors field's value. func (s *DeleteIntegrationOutput) SetErrors(v []*IntegrationError) *DeleteIntegrationOutput { s.Errors = v @@ -45049,6 +45203,13 @@ type Integration struct { // (UTC). CreateTime *time.Time `type:"timestamp"` + // Data filters for the integration. These filters determine which tables from + // the source database are sent to the target Amazon Redshift data warehouse. + DataFilter *string `min:"1" type:"string"` + + // A description of the integration. + Description *string `type:"string"` + // Any errors associated with the integration. Errors []*IntegrationError `locationNameList:"IntegrationError" type:"list"` @@ -45106,6 +45267,18 @@ func (s *Integration) SetCreateTime(v time.Time) *Integration { return s } +// SetDataFilter sets the DataFilter field's value. +func (s *Integration) SetDataFilter(v string) *Integration { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Integration) SetDescription(v string) *Integration { + s.Description = &v + return s +} + // SetErrors sets the Errors field's value. func (s *Integration) SetErrors(v []*IntegrationError) *Integration { s.Errors = v @@ -50543,6 +50716,226 @@ func (s *ModifyGlobalClusterOutput) SetGlobalCluster(v *GlobalCluster) *ModifyGl return s } +type ModifyIntegrationInput struct { + _ struct{} `type:"structure"` + + // A new data filter for the integration. For more information, see Data filtering + // for Aurora zero-ETL integrations with Amazon Redshift (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Zero_ETL_Filtering.html). + DataFilter *string `min:"1" type:"string"` + + // A new description for the integration. + Description *string `type:"string"` + + // The unique identifier of the integration to modify. + // + // IntegrationIdentifier is a required field + IntegrationIdentifier *string `min:"1" type:"string" required:"true"` + + // A new name for the integration. + IntegrationName *string `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 ModifyIntegrationInput) 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 ModifyIntegrationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyIntegrationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyIntegrationInput"} + if s.DataFilter != nil && len(*s.DataFilter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataFilter", 1)) + } + if s.IntegrationIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("IntegrationIdentifier")) + } + if s.IntegrationIdentifier != nil && len(*s.IntegrationIdentifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IntegrationIdentifier", 1)) + } + if s.IntegrationName != nil && len(*s.IntegrationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IntegrationName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataFilter sets the DataFilter field's value. +func (s *ModifyIntegrationInput) SetDataFilter(v string) *ModifyIntegrationInput { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ModifyIntegrationInput) SetDescription(v string) *ModifyIntegrationInput { + s.Description = &v + return s +} + +// SetIntegrationIdentifier sets the IntegrationIdentifier field's value. +func (s *ModifyIntegrationInput) SetIntegrationIdentifier(v string) *ModifyIntegrationInput { + s.IntegrationIdentifier = &v + return s +} + +// SetIntegrationName sets the IntegrationName field's value. +func (s *ModifyIntegrationInput) SetIntegrationName(v string) *ModifyIntegrationInput { + s.IntegrationName = &v + return s +} + +// A zero-ETL integration with Amazon Redshift. +type ModifyIntegrationOutput struct { + _ struct{} `type:"structure"` + + // The encryption context for the integration. For more information, see Encryption + // context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the Amazon Web Services Key Management Service Developer Guide. + AdditionalEncryptionContext map[string]*string `type:"map"` + + // The time when the integration was created, in Universal Coordinated Time + // (UTC). + CreateTime *time.Time `type:"timestamp"` + + // Data filters for the integration. These filters determine which tables from + // the source database are sent to the target Amazon Redshift data warehouse. + DataFilter *string `min:"1" type:"string"` + + // A description of the integration. + Description *string `type:"string"` + + // Any errors associated with the integration. + Errors []*IntegrationError `locationNameList:"IntegrationError" type:"list"` + + // The ARN of the integration. + IntegrationArn *string `min:"1" type:"string"` + + // The name of the integration. + IntegrationName *string `min:"1" type:"string"` + + // The Amazon Web Services Key Management System (Amazon Web Services KMS) key + // identifier for the key used to to encrypt the integration. + KMSKeyId *string `type:"string"` + + // The Amazon Resource Name (ARN) of the database used as the source for replication. + SourceArn *string `min:"1" type:"string"` + + // The current status of the integration. + Status *string `type:"string" enum:"IntegrationStatus"` + + // A list of tags. For more information, see Tagging Amazon RDS Resources (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + // in the Amazon RDS User Guide. + Tags []*Tag `locationNameList:"Tag" type:"list"` + + // The ARN of the Redshift data warehouse used as the target for replication. + TargetArn *string `min:"20" 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 ModifyIntegrationOutput) 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 ModifyIntegrationOutput) GoString() string { + return s.String() +} + +// SetAdditionalEncryptionContext sets the AdditionalEncryptionContext field's value. +func (s *ModifyIntegrationOutput) SetAdditionalEncryptionContext(v map[string]*string) *ModifyIntegrationOutput { + s.AdditionalEncryptionContext = v + return s +} + +// SetCreateTime sets the CreateTime field's value. +func (s *ModifyIntegrationOutput) SetCreateTime(v time.Time) *ModifyIntegrationOutput { + s.CreateTime = &v + return s +} + +// SetDataFilter sets the DataFilter field's value. +func (s *ModifyIntegrationOutput) SetDataFilter(v string) *ModifyIntegrationOutput { + s.DataFilter = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ModifyIntegrationOutput) SetDescription(v string) *ModifyIntegrationOutput { + s.Description = &v + return s +} + +// SetErrors sets the Errors field's value. +func (s *ModifyIntegrationOutput) SetErrors(v []*IntegrationError) *ModifyIntegrationOutput { + s.Errors = v + return s +} + +// SetIntegrationArn sets the IntegrationArn field's value. +func (s *ModifyIntegrationOutput) SetIntegrationArn(v string) *ModifyIntegrationOutput { + s.IntegrationArn = &v + return s +} + +// SetIntegrationName sets the IntegrationName field's value. +func (s *ModifyIntegrationOutput) SetIntegrationName(v string) *ModifyIntegrationOutput { + s.IntegrationName = &v + return s +} + +// SetKMSKeyId sets the KMSKeyId field's value. +func (s *ModifyIntegrationOutput) SetKMSKeyId(v string) *ModifyIntegrationOutput { + s.KMSKeyId = &v + return s +} + +// SetSourceArn sets the SourceArn field's value. +func (s *ModifyIntegrationOutput) SetSourceArn(v string) *ModifyIntegrationOutput { + s.SourceArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ModifyIntegrationOutput) SetStatus(v string) *ModifyIntegrationOutput { + s.Status = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ModifyIntegrationOutput) SetTags(v []*Tag) *ModifyIntegrationOutput { + s.Tags = v + return s +} + +// SetTargetArn sets the TargetArn field's value. +func (s *ModifyIntegrationOutput) SetTargetArn(v string) *ModifyIntegrationOutput { + s.TargetArn = &v + return s +} + type ModifyOptionGroupInput struct { _ struct{} `type:"structure"` diff --git a/service/rds/examples_test.go b/service/rds/examples_test.go index cad2acbefb..2d75edb29a 100644 --- a/service/rds/examples_test.go +++ b/service/rds/examples_test.go @@ -3575,6 +3575,39 @@ func ExampleRDS_ModifyGlobalCluster_shared00() { fmt.Println(result) } +// To modify a zero-ETL integration +// The following example modifies the name of an existing zero-ETL integration. +func ExampleRDS_ModifyIntegration_shared00() { + svc := rds.New(session.New()) + input := &rds.ModifyIntegrationInput{ + IntegrationIdentifier: aws.String("a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"), + IntegrationName: aws.String("my-renamed-integration"), + } + + result, err := svc.ModifyIntegration(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case rds.ErrCodeIntegrationNotFoundFault: + fmt.Println(rds.ErrCodeIntegrationNotFoundFault, aerr.Error()) + case rds.ErrCodeInvalidIntegrationStateFault: + fmt.Println(rds.ErrCodeInvalidIntegrationStateFault, aerr.Error()) + case rds.ErrCodeIntegrationConflictOperationFault: + fmt.Println(rds.ErrCodeIntegrationConflictOperationFault, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To modify an option group // The following example adds an option to an option group. func ExampleRDS_ModifyOptionGroup_shared00() { diff --git a/service/rds/rdsiface/interface.go b/service/rds/rdsiface/interface.go index 61bd17ad01..ec0caacfcc 100644 --- a/service/rds/rdsiface/interface.go +++ b/service/rds/rdsiface/interface.go @@ -681,6 +681,10 @@ type RDSAPI interface { ModifyGlobalClusterWithContext(aws.Context, *rds.ModifyGlobalClusterInput, ...request.Option) (*rds.ModifyGlobalClusterOutput, error) ModifyGlobalClusterRequest(*rds.ModifyGlobalClusterInput) (*request.Request, *rds.ModifyGlobalClusterOutput) + ModifyIntegration(*rds.ModifyIntegrationInput) (*rds.ModifyIntegrationOutput, error) + ModifyIntegrationWithContext(aws.Context, *rds.ModifyIntegrationInput, ...request.Option) (*rds.ModifyIntegrationOutput, error) + ModifyIntegrationRequest(*rds.ModifyIntegrationInput) (*request.Request, *rds.ModifyIntegrationOutput) + ModifyOptionGroup(*rds.ModifyOptionGroupInput) (*rds.ModifyOptionGroupOutput, error) ModifyOptionGroupWithContext(aws.Context, *rds.ModifyOptionGroupInput, ...request.Option) (*rds.ModifyOptionGroupOutput, error) ModifyOptionGroupRequest(*rds.ModifyOptionGroupInput) (*request.Request, *rds.ModifyOptionGroupOutput) diff --git a/service/s3/api.go b/service/s3/api.go index 0ffeeb2296..f472cdc8d2 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -24640,7 +24640,7 @@ type GetObjectLegalHoldOutput struct { _ struct{} `type:"structure" payload:"LegalHold"` // The current legal hold status for the specified object. - LegalHold *ObjectLockLegalHold `type:"structure"` + LegalHold *ObjectLockLegalHold `locationName:"LegalHold" type:"structure"` } // String returns the string representation. @@ -25399,7 +25399,7 @@ type GetObjectRetentionOutput struct { _ struct{} `type:"structure" payload:"Retention"` // The container element for an object's retention settings. - Retention *ObjectLockRetention `type:"structure"` + Retention *ObjectLockRetention `locationName:"Retention" type:"structure"` } // String returns the string representation. diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index 707769d23f..31e135b956 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -125,16 +125,12 @@ func ExampleS3_CopyObject_shared00() { fmt.Println(result) } -// To create a bucket in a specific region -// The following example creates a bucket. The request specifies an AWS region where -// to create the bucket. +// To create a bucket +// The following example creates a bucket. func ExampleS3_CreateBucket_shared00() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), - CreateBucketConfiguration: &s3.CreateBucketConfiguration{ - LocationConstraint: aws.String("eu-west-1"), - }, } result, err := svc.CreateBucket(input) @@ -159,12 +155,16 @@ func ExampleS3_CreateBucket_shared00() { fmt.Println(result) } -// To create a bucket -// The following example creates a bucket. +// To create a bucket in a specific region +// The following example creates a bucket. The request specifies an AWS region where +// to create the bucket. func ExampleS3_CreateBucket_shared01() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), + CreateBucketConfiguration: &s3.CreateBucketConfiguration{ + LocationConstraint: aws.String("eu-west-1"), + }, } result, err := svc.CreateBucket(input) @@ -398,13 +398,13 @@ func ExampleS3_DeleteBucketWebsite_shared00() { fmt.Println(result) } -// To delete an object (from a non-versioned bucket) -// The following example deletes an object from a non-versioned bucket. +// To delete an object +// The following example deletes an object from an S3 bucket. func ExampleS3_DeleteObject_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("ExampleBucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey.jpg"), } result, err := svc.DeleteObject(input) @@ -425,13 +425,13 @@ func ExampleS3_DeleteObject_shared00() { fmt.Println(result) } -// To delete an object -// The following example deletes an object from an S3 bucket. +// To delete an object (from a non-versioned bucket) +// The following example deletes an object from a non-versioned bucket. func ExampleS3_DeleteObject_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey.jpg"), + Bucket: aws.String("ExampleBucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObject(input) @@ -510,10 +510,10 @@ func ExampleS3_DeleteObjectTagging_shared01() { fmt.Println(result) } -// To delete multiple objects from a versioned bucket -// The following example deletes objects from a bucket. The bucket is versioned, and -// the request does not specify the object version to delete. In this case, all versions -// remain in the bucket and S3 adds a delete marker. +// To delete multiple object versions from a versioned bucket +// The following example deletes objects from a bucket. The request specifies object +// versions. S3 deletes specific object versions and returns the key and versions of +// deleted objects in the response. func ExampleS3_DeleteObjects_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -521,10 +521,12 @@ func ExampleS3_DeleteObjects_shared00() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("objectkey1"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), }, { - Key: aws.String("objectkey2"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), }, }, Quiet: aws.Bool(false), @@ -549,10 +551,10 @@ func ExampleS3_DeleteObjects_shared00() { fmt.Println(result) } -// To delete multiple object versions from a versioned bucket -// The following example deletes objects from a bucket. The request specifies object -// versions. S3 deletes specific object versions and returns the key and versions of -// deleted objects in the response. +// To delete multiple objects from a versioned bucket +// The following example deletes objects from a bucket. The bucket is versioned, and +// the request does not specify the object version to delete. In this case, all versions +// remain in the bucket and S3 adds a delete marker. func ExampleS3_DeleteObjects_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -560,12 +562,10 @@ func ExampleS3_DeleteObjects_shared01() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), + Key: aws.String("objectkey1"), }, { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), + Key: aws.String("objectkey2"), }, }, Quiet: aws.Bool(false), @@ -903,13 +903,15 @@ func ExampleS3_GetBucketWebsite_shared00() { fmt.Println(result) } -// To retrieve an object -// The following example retrieves an object for an S3 bucket. +// To retrieve a byte range of an object +// The following example retrieves an object for an S3 bucket. The request specifies +// the range header to retrieve a specific byte range. func ExampleS3_GetObject_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("SampleFile.txt"), + Range: aws.String("bytes=0-9"), } result, err := svc.GetObject(input) @@ -934,15 +936,13 @@ func ExampleS3_GetObject_shared00() { fmt.Println(result) } -// To retrieve a byte range of an object -// The following example retrieves an object for an S3 bucket. The request specifies -// the range header to retrieve a specific byte range. +// To retrieve an object +// The following example retrieves an object for an S3 bucket. func ExampleS3_GetObject_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("SampleFile.txt"), - Range: aws.String("bytes=0-9"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObject(input) @@ -996,13 +996,15 @@ func ExampleS3_GetObjectAcl_shared00() { fmt.Println(result) } -// To retrieve tag set of an object -// The following example retrieves tag set of an object. +// To retrieve tag set of a specific object version +// The following example retrieves tag set of an object. The request specifies object +// version. func ExampleS3_GetObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.GetObjectTagging(input) @@ -1023,15 +1025,13 @@ func ExampleS3_GetObjectTagging_shared00() { fmt.Println(result) } -// To retrieve tag set of a specific object version -// The following example retrieves tag set of an object. The request specifies object -// version. +// To retrieve tag set of an object +// The following example retrieves tag set of an object. func ExampleS3_GetObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObjectTagging(input) @@ -1745,18 +1745,16 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags -// The following example uploads an object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// To upload an object +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleS3_PutObject_shared00() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - ServerSideEncryption: aws.String("AES256"), - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.PutObject(input) @@ -1777,19 +1775,17 @@ func ExampleS3_PutObject_shared00() { fmt.Println(result) } -// To upload object and specify user-defined metadata -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// To upload an object (specify optional headers) +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleS3_PutObject_shared01() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - Metadata: map[string]*string{ - "metadata1": aws.String("value1"), - "metadata2": aws.String("value2"), - }, + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + ServerSideEncryption: aws.String("AES256"), + StorageClass: aws.String("STANDARD_IA"), } result, err := svc.PutObject(input) @@ -1810,17 +1806,19 @@ func ExampleS3_PutObject_shared01() { fmt.Println(result) } -// To upload an object and specify canned ACL. -// The following example uploads and object. The request specifies optional canned ACL -// (access control list) to all READ access to authenticated users. If the bucket is -// versioning enabled, S3 returns version ID in response. +// To upload object and specify user-defined metadata +// The following example creates an object. The request also specifies optional metadata. +// If the bucket is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared02() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - ACL: aws.String("authenticated-read"), Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), Key: aws.String("exampleobject"), + Metadata: map[string]*string{ + "metadata1": aws.String("value1"), + "metadata2": aws.String("value2"), + }, } result, err := svc.PutObject(input) @@ -1841,16 +1839,17 @@ func ExampleS3_PutObject_shared02() { fmt.Println(result) } -// To upload an object -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// To upload an object and specify canned ACL. +// The following example uploads and object. The request specifies optional canned ACL +// (access control list) to all READ access to authenticated users. If the bucket is +// versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared03() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + ACL: aws.String("authenticated-read"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("exampleobject"), } result, err := svc.PutObject(input) @@ -1900,17 +1899,18 @@ func ExampleS3_PutObject_shared04() { fmt.Println(result) } -// To upload an object (specify optional headers) -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// To upload an object and specify server-side encryption and object tags +// The following example uploads an object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared05() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("exampleobject"), ServerSideEncryption: aws.String("AES256"), - StorageClass: aws.String("STANDARD_IA"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) diff --git a/service/timestreamquery/api.go b/service/timestreamquery/api.go index 95cea31803..5fce0c0b8c 100644 --- a/service/timestreamquery/api.go +++ b/service/timestreamquery/api.go @@ -1199,7 +1199,7 @@ func (c *TimestreamQuery) PrepareQueryRequest(input *PrepareQueryInput) (req *re // // A synchronous operation that allows you to submit a query with parameters // to be stored by Timestream for later running. Timestream only supports using -// this operation with the PrepareQueryRequest$ValidateOnly set to true. +// this operation with ValidateOnly set to true. // // 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 @@ -5502,7 +5502,7 @@ type Type struct { RowColumnInfo []*ColumnInfo `type:"list"` // Indicates if the column is of type string, integer, Boolean, double, timestamp, - // date, time. + // date, time. For more information, see Supported data types (https://docs.aws.amazon.com/timestream/latest/developerguide/supported-data-types.html). ScalarType *string `type:"string" enum:"ScalarType"` // Indicates if the column is a timeseries data type.