From b33b08175d12b795daa7726c5577b39d06a2551c Mon Sep 17 00:00:00 2001 From: awssdkgo Date: Tue, 1 Aug 2017 21:44:58 +0000 Subject: [PATCH] Release v1.10.20 --- CHANGELOG.md | 15 + aws/version.go | 2 +- models/apis/codedeploy/2014-10-06/api-2.json | 63 +- models/apis/codedeploy/2014-10-06/docs-2.json | 56 +- models/apis/config/2014-11-12/api-2.json | 45 +- models/apis/config/2014-11-12/docs-2.json | 43 +- models/apis/ec2/2016-11-15/waiters-2.json | 5 + .../2015-12-01/waiters-2.json | 36 + models/apis/email/2010-12-01/api-2.json | 36 +- models/apis/email/2010-12-01/docs-2.json | 34 +- models/apis/email/2010-12-01/examples-1.json | 2 + .../apis/email/2010-12-01/paginators-1.json | 4 +- models/apis/pinpoint/2016-12-01/api-2.json | 237 ++++++ models/apis/pinpoint/2016-12-01/docs-2.json | 52 +- service/codedeploy/api.go | 168 +++- service/codedeploy/errors.go | 21 + service/configservice/api.go | 285 ++++++- .../configserviceiface/interface.go | 4 + service/ec2/waiters.go | 5 + service/elbv2/elbv2iface/interface.go | 6 + service/elbv2/waiters.go | 102 +++ service/pinpoint/api.go | 753 +++++++++++++++++- service/pinpoint/doc.go | 6 +- service/pinpoint/pinpointiface/interface.go | 20 +- service/ses/api.go | 152 +++- service/ses/errors.go | 7 + 26 files changed, 2048 insertions(+), 111 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d7dce75512..f97d4183e7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Release v1.10.20 (2017-08-01) +=== + +### Service Client Updates +* `service/codedeploy`: Updates service API and documentation + * AWS CodeDeploy now supports the use of multiple tag groups in a single deployment group (an intersection of tags) to identify the instances for a deployment. When you create or update a deployment group, use the new ec2TagSet and onPremisesTagSet structures to specify up to three groups of tags. Only instances that are identified by at least one tag in each of the tag groups are included in the deployment group. +* `service/config`: Updates service API and documentation +* `service/ec2`: Updates service waiters + * Ec2 SpotInstanceRequestFulfilled waiter update +* `service/elasticloadbalancingv2`: Updates service waiters +* `service/email`: Updates service API, documentation, paginators, and examples + * This update adds information about publishing email open and click events. This update also adds information about publishing email events to Amazon Simple Notification Service (Amazon SNS). +* `service/pinpoint`: Updates service API and documentation + * This release of the Pinpoint SDK enables App management - create, delete, update operations, Raw Content delivery for APNs and GCM campaign messages and From Address override. + Release v1.10.19 (2017-08-01) === diff --git a/aws/version.go b/aws/version.go index cb97001a79a..ce47aa9cd82 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.10.19" +const SDKVersion = "1.10.20" diff --git a/models/apis/codedeploy/2014-10-06/api-2.json b/models/apis/codedeploy/2014-10-06/api-2.json index ae064d4ab15..d558c546fae 100644 --- a/models/apis/codedeploy/2014-10-06/api-2.json +++ b/models/apis/codedeploy/2014-10-06/api-2.json @@ -229,7 +229,10 @@ {"shape":"InvalidAutoRollbackConfigException"}, {"shape":"InvalidLoadBalancerInfoException"}, {"shape":"InvalidDeploymentStyleException"}, - {"shape":"InvalidBlueGreenDeploymentConfigurationException"} + {"shape":"InvalidBlueGreenDeploymentConfigurationException"}, + {"shape":"InvalidEC2TagCombinationException"}, + {"shape":"InvalidOnPremisesTagCombinationException"}, + {"shape":"TagSetListLimitExceededException"} ] }, "DeleteApplication":{ @@ -646,7 +649,10 @@ {"shape":"InvalidAutoRollbackConfigException"}, {"shape":"InvalidLoadBalancerInfoException"}, {"shape":"InvalidDeploymentStyleException"}, - {"shape":"InvalidBlueGreenDeploymentConfigurationException"} + {"shape":"InvalidBlueGreenDeploymentConfigurationException"}, + {"shape":"InvalidEC2TagCombinationException"}, + {"shape":"InvalidOnPremisesTagCombinationException"}, + {"shape":"TagSetListLimitExceededException"} ] } }, @@ -961,7 +967,9 @@ "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, - "loadBalancerInfo":{"shape":"LoadBalancerInfo"} + "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "CreateDeploymentGroupOutput":{ @@ -1124,7 +1132,9 @@ "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, "lastSuccessfulDeployment":{"shape":"LastDeploymentInfo"}, - "lastAttemptedDeployment":{"shape":"LastDeploymentInfo"} + "lastAttemptedDeployment":{"shape":"LastDeploymentInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "DeploymentGroupInfoList":{ @@ -1321,6 +1331,16 @@ "KEY_AND_VALUE" ] }, + "EC2TagSet":{ + "type":"structure", + "members":{ + "ec2TagSetList":{"shape":"EC2TagSetList"} + } + }, + "EC2TagSetList":{ + "type":"list", + "member":{"shape":"EC2TagFilterList"} + }, "ELBInfo":{ "type":"structure", "members":{ @@ -1735,6 +1755,12 @@ }, "exception":true }, + "InvalidEC2TagCombinationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "InvalidEC2TagException":{ "type":"structure", "members":{ @@ -1801,6 +1827,12 @@ }, "exception":true }, + "InvalidOnPremisesTagCombinationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "InvalidOperationException":{ "type":"structure", "members":{ @@ -2084,6 +2116,16 @@ }, "NextToken":{"type":"string"}, "NullableBoolean":{"type":"boolean"}, + "OnPremisesTagSet":{ + "type":"structure", + "members":{ + "onPremisesTagSetList":{"shape":"OnPremisesTagSetList"} + } + }, + "OnPremisesTagSetList":{ + "type":"list", + "member":{"shape":"TagFilterList"} + }, "RegisterApplicationRevisionInput":{ "type":"structure", "required":[ @@ -2278,11 +2320,18 @@ }, "exception":true }, + "TagSetListLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "TargetInstances":{ "type":"structure", "members":{ "tagFilters":{"shape":"EC2TagFilterList"}, - "autoScalingGroups":{"shape":"AutoScalingGroupNameList"} + "autoScalingGroups":{"shape":"AutoScalingGroupNameList"}, + "ec2TagSet":{"shape":"EC2TagSet"} } }, "TimeRange":{ @@ -2365,7 +2414,9 @@ "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, - "loadBalancerInfo":{"shape":"LoadBalancerInfo"} + "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "UpdateDeploymentGroupOutput":{ diff --git a/models/apis/codedeploy/2014-10-06/docs-2.json b/models/apis/codedeploy/2014-10-06/docs-2.json index 1fa67463c0b..bb7412757f7 100644 --- a/models/apis/codedeploy/2014-10-06/docs-2.json +++ b/models/apis/codedeploy/2014-10-06/docs-2.json @@ -691,9 +691,10 @@ "EC2TagFilterList": { "base": null, "refs": { - "CreateDeploymentGroupInput$ec2TagFilters": "

The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags.

", - "DeploymentGroupInfo$ec2TagFilters": "

The Amazon EC2 tags on which to filter.

", - "TargetInstances$tagFilters": "

The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment.

", + "CreateDeploymentGroupInput$ec2TagFilters": "

The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.

", + "DeploymentGroupInfo$ec2TagFilters": "

The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags.

", + "EC2TagSetList$member": null, + "TargetInstances$tagFilters": "

The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet.

", "UpdateDeploymentGroupInput$ec2TagFilters": "

The replacement set of Amazon EC2 tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.

" } }, @@ -703,6 +704,21 @@ "EC2TagFilter$Type": "

The tag filter type:

" } }, + "EC2TagSet": { + "base": "

Information about groups of EC2 instance tags.

", + "refs": { + "CreateDeploymentGroupInput$ec2TagSet": "

Information about groups of tags applied to EC2 instances. The deployment group will include only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.

", + "DeploymentGroupInfo$ec2TagSet": "

Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.

", + "TargetInstances$ec2TagSet": "

Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters.

", + "UpdateDeploymentGroupInput$ec2TagSet": "

Information about groups of tags applied to on-premises instances. The deployment group will include only EC2 instances identified by all the tag groups.

" + } + }, + "EC2TagSetList": { + "base": null, + "refs": { + "EC2TagSet$ec2TagSetList": "

A list containing other lists of EC2 instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.

" + } + }, "ELBInfo": { "base": "

Information about a load balancer in Elastic Load Balancing to use in a deployment.

", "refs": { @@ -1106,6 +1122,11 @@ "refs": { } }, + "InvalidEC2TagCombinationException": { + "base": "

A call was submitted that specified both Ec2TagFilters and Ec2TagSet, but only one of these data types can be used in a single call.

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

The tag was specified in an invalid format.

", "refs": { @@ -1161,6 +1182,11 @@ "refs": { } }, + "InvalidOnPremisesTagCombinationException": { + "base": "

A call was submitted that specified both OnPremisesTagFilters and OnPremisesTagSet, but only one of these data types can be used in a single call.

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

An invalid operation was detected.

", "refs": { @@ -1430,6 +1456,20 @@ "StopDeploymentInput$autoRollbackEnabled": "

Indicates, when a deployment is stopped, whether instances that have been updated should be rolled back to the previous version of the application revision.

" } }, + "OnPremisesTagSet": { + "base": "

Information about groups of on-premises instance tags.

", + "refs": { + "CreateDeploymentGroupInput$onPremisesTagSet": "

Information about groups of tags applied to on-premises instances. The deployment group will include only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.

", + "DeploymentGroupInfo$onPremisesTagSet": "

Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.

", + "UpdateDeploymentGroupInput$onPremisesTagSet": "

Information about an on-premises instance tag set. The deployment group will include only on-premises instances identified by all the tag groups.

" + } + }, + "OnPremisesTagSetList": { + "base": null, + "refs": { + "OnPremisesTagSet$onPremisesTagSetList": "

A list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.

" + } + }, "RegisterApplicationRevisionInput": { "base": "

Represents the input of a RegisterApplicationRevision operation.

", "refs": { @@ -1598,9 +1638,10 @@ "TagFilterList": { "base": null, "refs": { - "CreateDeploymentGroupInput$onPremisesInstanceTagFilters": "

The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags.

", - "DeploymentGroupInfo$onPremisesInstanceTagFilters": "

The on-premises instance tags on which to filter.

", + "CreateDeploymentGroupInput$onPremisesInstanceTagFilters": "

The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags. Cannot be used in the same call as OnPremisesTagSet.

", + "DeploymentGroupInfo$onPremisesInstanceTagFilters": "

The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags.

", "ListOnPremisesInstancesInput$tagFilters": "

The on-premises instance tags that will be used to restrict the corresponding on-premises instance names returned.

", + "OnPremisesTagSetList$member": null, "UpdateDeploymentGroupInput$onPremisesInstanceTagFilters": "

The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.

" } }, @@ -1628,6 +1669,11 @@ "refs": { } }, + "TagSetListLimitExceededException": { + "base": "

The number of tag groups included in the tag set list exceeded the maximum allowed limit of 3.

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

Information about the instances to be used in the replacement environment in a blue/green deployment.

", "refs": { diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index e91758a05cb..7beadfa3d50 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -222,6 +222,20 @@ {"shape":"InvalidParameterValueException"} ] }, + "GetDiscoveredResourceCounts":{ + "name":"GetDiscoveredResourceCounts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDiscoveredResourceCountsRequest"}, + "output":{"shape":"GetDiscoveredResourceCountsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidLimitException"}, + {"shape":"InvalidNextTokenException"} + ] + }, "GetResourceConfigHistory":{ "name":"GetResourceConfigHistory", "http":{ @@ -914,6 +928,22 @@ "ComplianceSummariesByResourceType":{"shape":"ComplianceSummariesByResourceType"} } }, + "GetDiscoveredResourceCountsRequest":{ + "type":"structure", + "members":{ + "resourceTypes":{"shape":"ResourceTypes"}, + "limit":{"shape":"Limit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetDiscoveredResourceCountsResponse":{ + "type":"structure", + "members":{ + "totalDiscoveredResources":{"shape":"Long"}, + "resourceCounts":{"shape":"ResourceCounts"}, + "nextToken":{"shape":"NextToken"} + } + }, "GetResourceConfigHistoryRequest":{ "type":"structure", "required":[ @@ -1054,6 +1084,7 @@ "nextToken":{"shape":"NextToken"} } }, + "Long":{"type":"long"}, "MaxNumberOfConfigRulesExceededException":{ "type":"structure", "members":{ @@ -1225,6 +1256,17 @@ "member":{"shape":"Relationship"} }, "RelationshipName":{"type":"string"}, + "ResourceCount":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "count":{"shape":"Long"} + } + }, + "ResourceCounts":{ + "type":"list", + "member":{"shape":"ResourceCount"} + }, "ResourceCreationTime":{"type":"timestamp"}, "ResourceDeletionTime":{"type":"timestamp"}, "ResourceId":{"type":"string"}, @@ -1295,7 +1337,8 @@ "AWS::Redshift::ClusterSecurityGroup", "AWS::Redshift::ClusterSubnetGroup", "AWS::Redshift::EventSubscription", - "AWS::CloudWatch::Alarm" + "AWS::CloudWatch::Alarm", + "AWS::CloudFormation::Stack" ] }, "ResourceTypeList":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index 6412d803106..11774113f0d 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -19,8 +19,9 @@ "GetComplianceDetailsByResource": "

Returns the evaluation results for the specified AWS resource. The results indicate which AWS Config rules were used to evaluate the resource, when each rule was last used, and whether the resource complies with each rule.

", "GetComplianceSummaryByConfigRule": "

Returns the number of AWS Config rules that are compliant and noncompliant, up to a maximum of 25 for each.

", "GetComplianceSummaryByResourceType": "

Returns the number of resources that are compliant and the number that are noncompliant. You can specify one or more resource types to get these numbers for each resource type. The maximum number returned is 100.

", - "GetResourceConfigHistory": "

Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval.

The response is paginated, and by default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string, and to get the next page of results, run the request again and enter this string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

", - "ListDiscoveredResources": "

Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name but not both in the same request.

The response is paginated, and by default AWS Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string, and to get the next page of results, run the request again and enter this string for the nextToken parameter.

", + "GetDiscoveredResourceCounts": "

Returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account.

Example

  1. AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets.

  2. You make a call to the GetDiscoveredResourceCounts action and specify that you want all resource types.

  3. AWS Config returns the following:

    • The resource types (EC2 instances, IAM users, and S3 buckets)

    • The number of each resource type (25, 20, and 15)

    • The total number of all resources (60)

The response is paginated. By default, AWS Config lists 100 ResourceCount objects on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

If you make a call to the GetDiscoveredResourceCounts action, you may not immediately receive resource counts in the following situations:

It may take a few minutes for AWS Config to record and count your resources. Wait a few minutes and then retry the GetDiscoveredResourceCounts action.

", + "GetResourceConfigHistory": "

Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval.

The response is paginated. By default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

", + "ListDiscoveredResources": "

Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name but not both in the same request.

The response is paginated. By default, AWS Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

", "PutConfigRule": "

Adds or updates an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations.

You can use this action for custom Config rules and AWS managed Config rules. A custom Config rule is a rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that AWS Config provides.

If you are adding a new custom Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the PutConfigRule action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN for the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

If you are adding an AWS managed Config rule, specify the rule's identifier for the SourceIdentifier key. To reference AWS managed Config rule identifiers, see About AWS Managed Config Rules.

For any new rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by AWS Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

The maximum number of rules that AWS Config supports is 50.

For more information about requesting a rule limit increase, see AWS Config Limits in the AWS General Reference Guide.

For more information about developing and using AWS Config rules, see Evaluating AWS Resource Configurations with AWS Config in the AWS Config Developer Guide.

", "PutConfigurationRecorder": "

Creates a new configuration recorder to record the selected resource configurations.

You can use this action to change the role roleARN and/or the recordingGroup of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role.

Currently, you can specify only one configuration recorder per region in your account.

If ConfigurationRecorder does not have the recordingGroup parameter specified, the default is to record all supported resource types.

", "PutDeliveryChannel": "

Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic.

Before you can create a delivery channel, you must create a configuration recorder.

You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

You can have only one delivery channel per region in your account.

", @@ -565,6 +566,16 @@ "refs": { } }, + "GetDiscoveredResourceCountsRequest": { + "base": null, + "refs": { + } + }, + "GetDiscoveredResourceCountsResponse": { + "base": null, + "refs": { + } + }, "GetResourceConfigHistoryRequest": { "base": "

The input for the GetResourceConfigHistory action.

", "refs": { @@ -668,6 +679,7 @@ "refs": { "DescribeComplianceByResourceRequest$Limit": "

The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.

", "GetComplianceDetailsByConfigRuleRequest$Limit": "

The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.

", + "GetDiscoveredResourceCountsRequest$limit": "

The maximum number of ResourceCount objects returned on each page. The default is 100. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.

", "GetResourceConfigHistoryRequest$limit": "

The maximum number of configuration items returned on each page. The default is 10. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.

", "ListDiscoveredResourcesRequest$limit": "

The maximum number of resource identifiers returned on each page. The default is 100. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.

" } @@ -687,6 +699,13 @@ "refs": { } }, + "Long": { + "base": null, + "refs": { + "GetDiscoveredResourceCountsResponse$totalDiscoveredResources": "

The total number of resources that AWS Config is recording in the region for your account. If you specify resource types in the request, AWS Config returns only the total number of resources for those resource types.

Example

  1. AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources.

  2. You make a call to the GetDiscoveredResourceCounts action and specify the resource type, \"AWS::EC2::Instances\" in the request.

  3. AWS Config returns 25 for totalDiscoveredResources.

", + "ResourceCount$count": "

The number of resources.

" + } + }, "MaxNumberOfConfigRulesExceededException": { "base": "

Failed to add the AWS Config rule because the account already contains the maximum number of 50 rules. Consider deleting any deactivated rules before adding new rules.

", "refs": { @@ -729,6 +748,8 @@ "DescribeComplianceByResourceResponse$NextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", "GetComplianceDetailsByConfigRuleRequest$NextToken": "

The NextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", "GetComplianceDetailsByConfigRuleResponse$NextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", + "GetDiscoveredResourceCountsRequest$nextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", + "GetDiscoveredResourceCountsResponse$nextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", "GetResourceConfigHistoryRequest$nextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", "GetResourceConfigHistoryResponse$nextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", "ListDiscoveredResourcesRequest$nextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", @@ -865,6 +886,18 @@ "Relationship$relationshipName": "

The type of relationship with the related resource.

" } }, + "ResourceCount": { + "base": "

An object that contains the resource type and the number of resources.

", + "refs": { + "ResourceCounts$member": null + } + }, + "ResourceCounts": { + "base": null, + "refs": { + "GetDiscoveredResourceCountsResponse$resourceCounts": "

The list of ResourceCount objects. Each object is listed in descending order by the number of resources.

" + } + }, "ResourceCreationTime": { "base": null, "refs": { @@ -931,6 +964,7 @@ "GetResourceConfigHistoryRequest$resourceType": "

The resource type.

", "ListDiscoveredResourcesRequest$resourceType": "

The type of resources that you want AWS Config to list in the response.

", "Relationship$resourceType": "

The resource type of the related resource.

", + "ResourceCount$resourceType": "

The resource type, for example \"AWS::EC2::Instance\".

", "ResourceIdentifier$resourceType": "

The type of resource.

", "ResourceTypeList$member": null } @@ -944,7 +978,8 @@ "ResourceTypes": { "base": null, "refs": { - "GetComplianceSummaryByResourceTypeRequest$ResourceTypes": "

Specify one or more resource types to get the number of resources that are compliant and the number that are noncompliant for each resource type.

For this request, you can specify an AWS resource type such as AWS::EC2::Instance, and you can specify that the resource type is an AWS account by specifying AWS::::Account.

" + "GetComplianceSummaryByResourceTypeRequest$ResourceTypes": "

Specify one or more resource types to get the number of resources that are compliant and the number that are noncompliant for each resource type.

For this request, you can specify an AWS resource type such as AWS::EC2::Instance, and you can specify that the resource type is an AWS account by specifying AWS::::Account.

", + "GetDiscoveredResourceCountsRequest$resourceTypes": "

The comma-separated list that specifies the resource types that you want the AWS Config to return. For example, (\"AWS::EC2::Instance\", \"AWS::IAM::User\").

If a value for resourceTypes is not specified, AWS Config returns all resource types that AWS Config is recording in the region for your account.

If the configuration recorder is turned off, AWS Config returns an empty list of ResourceCount objects. If the configuration recorder is not recording a specific resource type (for example, S3 buckets), that resource type is not returned in the list of ResourceCount objects.

" } }, "RuleLimit": { @@ -1063,7 +1098,7 @@ "ResourceTypes$member": null, "Scope$TagValue": "

The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for TagValue, you must also specify a value for TagKey.

", "Scope$ComplianceResourceId": "

The IDs of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ComplianceResourceTypes.

", - "Source$SourceIdentifier": "

For AWS Config managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using AWS Managed Config Rules.

For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name.

" + "Source$SourceIdentifier": "

For AWS Config managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using AWS Managed Config Rules.

For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name.

" } }, "StringWithCharLimit64": { diff --git a/models/apis/ec2/2016-11-15/waiters-2.json b/models/apis/ec2/2016-11-15/waiters-2.json index 7d8b7cdcd36..0f141739c51 100755 --- a/models/apis/ec2/2016-11-15/waiters-2.json +++ b/models/apis/ec2/2016-11-15/waiters-2.json @@ -413,6 +413,11 @@ "matcher": "pathAny", "argument": "SpotInstanceRequests[].Status.Code", "expected": "system-error" + }, + { + "state": "retry", + "matcher": "error", + "expected": "InvalidSpotInstanceRequestID.NotFound" } ] }, diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json index b4e85719c60..9f3d77d828f 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json @@ -59,6 +59,42 @@ "state": "success" } ] + }, + "TargetInService":{ + "delay":15, + "maxAttempts":40, + "operation":"DescribeTargetHealth", + "acceptors":[ + { + "argument":"TargetHealthDescriptions[].TargetHealth.State", + "expected":"healthy", + "matcher":"pathAll", + "state":"success" + }, + { + "matcher": "error", + "expected": "InvalidInstance", + "state": "retry" + } + ] + }, + "TargetDeregistered": { + "delay": 15, + "maxAttempts": 40, + "operation": "DescribeTargetHealth", + "acceptors": [ + { + "matcher": "error", + "expected": "InvalidTarget", + "state": "success" + }, + { + "argument":"TargetHealthDescriptions[].TargetHealth.State", + "expected":"unused", + "matcher":"pathAll", + "state":"success" + } + ] } } } diff --git a/models/apis/email/2010-12-01/api-2.json b/models/apis/email/2010-12-01/api-2.json index 1a70d54509a..63487b87e28 100644 --- a/models/apis/email/2010-12-01/api-2.json +++ b/models/apis/email/2010-12-01/api-2.json @@ -1,7 +1,6 @@ { "version":"2.0", "metadata":{ - "uid":"email-2010-12-01", "apiVersion":"2010-12-01", "endpointPrefix":"email", "protocol":"query", @@ -9,6 +8,7 @@ "serviceFullName":"Amazon Simple Email Service", "signatureVersion":"v4", "signingName":"ses", + "uid":"email-2010-12-01", "xmlNamespace":"http://ses.amazonaws.com/doc/2010-12-01/" }, "operations":{ @@ -62,6 +62,7 @@ {"shape":"EventDestinationAlreadyExistsException"}, {"shape":"InvalidCloudWatchDestinationException"}, {"shape":"InvalidFirehoseDestinationException"}, + {"shape":"InvalidSNSDestinationException"}, {"shape":"LimitExceededException"} ] }, @@ -620,7 +621,8 @@ {"shape":"ConfigurationSetDoesNotExistException"}, {"shape":"EventDestinationDoesNotExistException"}, {"shape":"InvalidCloudWatchDestinationException"}, - {"shape":"InvalidFirehoseDestinationException"} + {"shape":"InvalidFirehoseDestinationException"}, + {"shape":"InvalidSNSDestinationException"} ] }, "UpdateReceiptRule":{ @@ -1137,7 +1139,8 @@ "type":"string", "enum":[ "messageTag", - "emailHeader" + "emailHeader", + "linkTag" ] }, "DkimAttributes":{ @@ -1169,7 +1172,8 @@ "Enabled":{"shape":"Enabled"}, "MatchingEventTypes":{"shape":"EventTypes"}, "KinesisFirehoseDestination":{"shape":"KinesisFirehoseDestination"}, - "CloudWatchDestination":{"shape":"CloudWatchDestination"} + "CloudWatchDestination":{"shape":"CloudWatchDestination"}, + "SNSDestination":{"shape":"SNSDestination"} } }, "EventDestinationAlreadyExistsException":{ @@ -1210,7 +1214,9 @@ "reject", "bounce", "complaint", - "delivery" + "delivery", + "open", + "click" ] }, "EventTypes":{ @@ -1460,6 +1466,19 @@ }, "exception":true }, + "InvalidSNSDestinationException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "error":{ + "code":"InvalidSNSDestination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidSnsTopicException":{ "type":"structure", "members":{ @@ -1888,6 +1907,13 @@ "Base64" ] }, + "SNSDestination":{ + "type":"structure", + "required":["TopicARN"], + "members":{ + "TopicARN":{"shape":"AmazonResourceName"} + } + }, "SendBounceRequest":{ "type":"structure", "required":[ diff --git a/models/apis/email/2010-12-01/docs-2.json b/models/apis/email/2010-12-01/docs-2.json index 30903441b89..f77834d3a50 100644 --- a/models/apis/email/2010-12-01/docs-2.json +++ b/models/apis/email/2010-12-01/docs-2.json @@ -4,7 +4,7 @@ "operations": { "CloneReceiptRuleSet": "

Creates a receipt rule set by cloning an existing one. All receipt rules and configurations are copied to the new receipt rule set and are completely independent of the source rule set.

For information about setting up rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "CreateConfigurationSet": "

Creates a configuration set.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", - "CreateConfigurationSetEventDestination": "

Creates a configuration set event destination.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", + "CreateConfigurationSetEventDestination": "

Creates a configuration set event destination.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS).

An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "CreateReceiptFilter": "

Creates a new IP address filter.

For information about setting up IP address filters, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "CreateReceiptRule": "

Creates a receipt rule.

For information about setting up receipt rules, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "CreateReceiptRuleSet": "

Creates an empty receipt rule set.

For information about setting up receipt rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", @@ -24,7 +24,7 @@ "GetIdentityMailFromDomainAttributes": "

Returns the custom MAIL FROM attributes for a list of identities (email addresses and/or domains).

This action is throttled at one request per second and can only get custom MAIL FROM attributes for up to 100 identities at a time.

", "GetIdentityNotificationAttributes": "

Given a list of verified identities (email addresses and/or domains), returns a structure describing identity notification attributes.

This action is throttled at one request per second and can only get notification attributes for up to 100 identities at a time.

For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide.

", "GetIdentityPolicies": "

Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time.

This API is for the identity owner only. If you have not verified the identity, this API will return an error.

Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", - "GetIdentityVerificationAttributes": "

Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity.

This action is throttled at one request per second and can only get verification attributes for up to 100 identities at a time.

", + "GetIdentityVerificationAttributes": "

Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity.

The verification status of an email address is \"Pending\" until the email address owner clicks the link within the verification email that Amazon SES sent to that address. If the email address owner clicks the link within 24 hours, the verification status of the email address changes to \"Success\". If the link is not clicked within 24 hours, the verification status changes to \"Failed.\" In that case, if you still want to verify the email address, you must restart the verification process from the beginning.

For domain identities, the domain's verification status is \"Pending\" as Amazon SES searches for the required TXT record in the DNS settings of the domain. When Amazon SES detects the record, the domain's verification status changes to \"Success\". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to \"Failed.\" In that case, if you still want to verify the domain, you must restart the verification process from the beginning.

This action is throttled at one request per second and can only get verification attributes for up to 100 identities at a time.

", "GetSendQuota": "

Returns the user's current sending limits.

This action is throttled at one request per second.

", "GetSendStatistics": "

Returns the user's sending statistics. The result is a list of data points, representing the last two weeks of sending activity.

Each data point in the list contains statistics for a 15-minute interval.

This action is throttled at one request per second.

", "ListConfigurationSets": "

Lists the configuration sets associated with your AWS account.

Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second and can return up to 50 configuration sets at a time.

", @@ -36,8 +36,8 @@ "PutIdentityPolicy": "

Adds or updates a sending authorization policy for the specified identity (an email address or a domain).

This API is for the identity owner only. If you have not verified the identity, this API will return an error.

Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "ReorderReceiptRuleSet": "

Reorders the receipt rules within a receipt rule set.

All of the rules in the rule set must be represented in this request. That is, this API will return an error if the reorder request doesn't explicitly position all of the rules.

For information about managing receipt rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "SendBounce": "

Generates and sends a bounce message to the sender of an email you received through Amazon SES. You can only use this API on an email up to 24 hours after you receive it.

You cannot use this API to send generic bounces for mail that was not received by Amazon SES.

For information about receiving email through Amazon SES, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", - "SendEmail": "

Composes an email message based on input data, and then immediately queues the message for sending.

There are several important points to know about SendEmail:

", - "SendRawEmail": "

Sends an email message, with header and content specified by the client. The SendRawEmail action is useful for sending multipart MIME emails. The raw text of the message must comply with Internet email standards; otherwise, the message cannot be sent.

There are several important points to know about SendRawEmail:

", + "SendEmail": "

Composes an email message based on input data, and then immediately queues the message for sending.

There are several important points to know about SendEmail:

", + "SendRawEmail": "

Sends an email message, with header and content specified by the client. The SendRawEmail action is useful for sending multipart MIME emails. The raw text of the message must comply with Internet email standards; otherwise, the message cannot be sent.

There are several important points to know about SendRawEmail:

", "SetActiveReceiptRuleSet": "

Sets the specified receipt rule set as the active receipt rule set.

To disable your email-receiving through Amazon SES completely, you can call this API with RuleSetName set to null.

For information about managing receipt rule sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "SetIdentityDkimEnabled": "

Enables or disables Easy DKIM signing of email sent from an identity:

For email addresses (e.g., user@example.com), you can only enable Easy DKIM signing if the corresponding domain (e.g., example.com) has been set up for Easy DKIM using the AWS Console or the VerifyDomainDkim action.

This action is throttled at one request per second.

For more information about Easy DKIM signing, go to the Amazon SES Developer Guide.

", "SetIdentityFeedbackForwardingEnabled": "

Given an identity (an email address or a domain), enables or disables whether Amazon SES forwards bounce and complaint notifications as email. Feedback forwarding can only be disabled when Amazon Simple Notification Service (Amazon SNS) topics are specified for both bounces and complaints.

Feedback forwarding does not apply to delivery notifications. Delivery notifications are only available through Amazon SNS.

This action is throttled at one request per second.

For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide.

", @@ -45,7 +45,7 @@ "SetIdentityMailFromDomain": "

Enables or disables the custom MAIL FROM domain setup for a verified identity (an email address or a domain).

To send emails using the specified MAIL FROM domain, you must add an MX record to your MAIL FROM domain's DNS settings. If you want your emails to pass Sender Policy Framework (SPF) checks, you must also add or update an SPF record. For more information, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "SetIdentityNotificationTopic": "

Given an identity (an email address or a domain), sets the Amazon Simple Notification Service (Amazon SNS) topic to which Amazon SES will publish bounce, complaint, and/or delivery notifications for emails sent with that identity as the Source.

Unless feedback forwarding is enabled, you must specify Amazon SNS topics for bounce and complaint notifications. For more information, see SetIdentityFeedbackForwardingEnabled.

This action is throttled at one request per second.

For more information about feedback notification, see the Amazon SES Developer Guide.

", "SetReceiptRulePosition": "

Sets the position of the specified receipt rule in the receipt rule set.

For information about managing receipt rules, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", - "UpdateConfigurationSetEventDestination": "

Updates the event destination of a configuration set.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", + "UpdateConfigurationSetEventDestination": "

Updates the event destination of a configuration set.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS).

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "UpdateReceiptRule": "

Updates a receipt rule.

For information about managing receipt rules, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", "VerifyDomainDkim": "

Returns a set of DKIM tokens for a domain. DKIM tokens are character strings that represent your domain's identity. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign email originating from that domain.

This action is throttled at one request per second.

To enable or disable Easy DKIM signing for a domain, use the SetIdentityDkimEnabled action.

For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide.

", "VerifyDomainIdentity": "

Verifies a domain.

This action is throttled at one request per second.

", @@ -105,6 +105,7 @@ "S3Action$TopicArn": "

The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide.

", "S3Action$KmsKeyArn": "

The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You can use the default master key or a custom master key you created in AWS KMS as follows:

For more information about key policies, see the AWS KMS Developer Guide. If you do not specify a master key, Amazon SES will not encrypt your emails.

Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the AWS Java SDK and AWS Ruby SDK only. For more information about client-side encryption using AWS KMS master keys, see the Amazon S3 Developer Guide.

", "SNSAction$TopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide.

", + "SNSDestination$TopicARN": "

The ARN of the Amazon SNS topic to which you want to publish email sending events. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide .

", "SendBounceRequest$BounceSenderArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the address in the \"From\" header of the bounce. For more information about sending authorization, see the Amazon SES Developer Guide.

", "SendEmailRequest$SourceArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the Source parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to send from user@example.com, then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the Source to be user@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

", "SendEmailRequest$ReturnPathArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter.

For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com.

For more information about sending authorization, see the Amazon SES Developer Guide.

", @@ -266,6 +267,7 @@ "EventDestinationDoesNotExistException$ConfigurationSetName": null, "InvalidCloudWatchDestinationException$ConfigurationSetName": null, "InvalidFirehoseDestinationException$ConfigurationSetName": null, + "InvalidSNSDestinationException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", "SendEmailRequest$ConfigurationSetName": "

The name of the configuration set to use when you send an email using SendEmail.

", "SendRawEmailRequest$ConfigurationSetName": "

The name of the configuration set to use when you send an email using SendRawEmail.

", "UpdateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set that you want to update.

" @@ -537,7 +539,7 @@ } }, "EventDestination": { - "base": "

Contains information about the event destination to which the specified email sending events are published.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose.

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. For information about using configuration sets, see the Amazon SES Developer Guide.

", + "base": "

Contains information about the event destination to which the specified email sending events are published.

When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose or Amazon Simple Notification Service (Amazon SNS).

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see the Amazon SES Developer Guide.

", "refs": { "CreateConfigurationSetEventDestinationRequest$EventDestination": "

An object that describes the AWS service to which Amazon SES will publish the email sending events associated with the specified configuration set.

", "EventDestinations$member": null, @@ -562,7 +564,8 @@ "EventDestinationAlreadyExistsException$EventDestinationName": null, "EventDestinationDoesNotExistException$EventDestinationName": null, "InvalidCloudWatchDestinationException$EventDestinationName": null, - "InvalidFirehoseDestinationException$EventDestinationName": null + "InvalidFirehoseDestinationException$EventDestinationName": null, + "InvalidSNSDestinationException$EventDestinationName": "

Indicates that the event destination does not exist.

" } }, "EventDestinations": { @@ -776,6 +779,11 @@ "refs": { } }, + "InvalidSNSDestinationException": { + "base": "

Indicates that the Amazon Simple Notification Service (Amazon SNS) destination is invalid. See the error message for details.

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

Indicates that the provided Amazon SNS topic is invalid, or that Amazon SES could not publish to the topic, possibly due to permissions issues. For information about giving permissions, see the Amazon SES Developer Guide.

", "refs": { @@ -1034,13 +1042,13 @@ "RawMessage": { "base": "

Represents the raw data of the message.

", "refs": { - "SendRawEmailRequest$RawMessage": "

The raw text of the message. The client is responsible for ensuring the following:

" + "SendRawEmailRequest$RawMessage": "

The raw text of the message. The client is responsible for ensuring the following:

" } }, "RawMessageData": { "base": null, "refs": { - "RawMessage$Data": "

The raw data of the message. The client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, MIME encoding, and base64 encoding.

The To:, CC:, and BCC: headers in the raw message can contain a group list.

If you are using SendRawEmail with sending authorization, you can include X-headers in the raw message to specify the \"Source,\" \"From,\" and \"Return-Path\" addresses. For more information, see the documentation for SendRawEmail.

Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email.

For more information, go to the Amazon SES Developer Guide.

" + "RawMessage$Data": "

The raw data of the message. This data needs to base64-encoded if you are accessing Amazon SES directly through the HTTPS interface. If you are accessing Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for you. In all cases, the client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, and MIME encoding.

The To:, CC:, and BCC: headers in the raw message can contain a group list.

If you are using SendRawEmail with sending authorization, you can include X-headers in the raw message to specify the \"Source,\" \"From,\" and \"Return-Path\" addresses. For more information, see the documentation for SendRawEmail.

Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email.

For more information, go to the Amazon SES Developer Guide.

" } }, "ReceiptAction": { @@ -1243,6 +1251,12 @@ "SNSAction$Encoding": "

The encoding to use for the email within the Amazon SNS notification. UTF-8 is easier to use, but may not preserve all special characters when a message was encoded with a different encoding format. Base64 preserves all special characters. The default value is UTF-8.

" } }, + "SNSDestination": { + "base": "

Contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.

Event destinations, such as Amazon SNS, are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

", + "refs": { + "EventDestination$SNSDestination": "

An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.

" + } + }, "SendBounceRequest": { "base": "

Represents a request to send a bounce message to the sender of an email you received through Amazon SES.

", "refs": { @@ -1424,7 +1438,7 @@ "refs": { "IdentityVerificationAttributes$VerificationToken": "

The verification token for a domain identity. Null for email address identities.

", "VerificationTokenList$member": null, - "VerifyDomainIdentityResponse$VerificationToken": "

A TXT record that must be placed in the DNS settings for the domain, in order to complete domain verification.

" + "VerifyDomainIdentityResponse$VerificationToken": "

A TXT record that you must place in the DNS settings of the domain to complete domain verification with Amazon SES.

As Amazon SES searches for the TXT record, the domain's verification status is \"Pending\". When Amazon SES detects the record, the domain's verification status changes to \"Success\". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to \"Failed.\" In that case, if you still want to verify the domain, you must restart the verification process from the beginning.

" } }, "VerificationTokenList": { diff --git a/models/apis/email/2010-12-01/examples-1.json b/models/apis/email/2010-12-01/examples-1.json index 88555294c71..67d43a0dd97 100644 --- a/models/apis/email/2010-12-01/examples-1.json +++ b/models/apis/email/2010-12-01/examples-1.json @@ -367,6 +367,8 @@ "NotificationAttributes": { "example.com": { "BounceTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", + "ComplaintTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", + "DeliveryTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", "ForwardingEnabled": true, "HeadersInBounceNotificationsEnabled": false, "HeadersInComplaintNotificationsEnabled": false, diff --git a/models/apis/email/2010-12-01/paginators-1.json b/models/apis/email/2010-12-01/paginators-1.json index e12811f5e13..8a21098f84f 100644 --- a/models/apis/email/2010-12-01/paginators-1.json +++ b/models/apis/email/2010-12-01/paginators-1.json @@ -2,12 +2,12 @@ "pagination": { "ListIdentities": { "input_token": "NextToken", - "output_token": "NextToken", "limit_key": "MaxItems", + "output_token": "NextToken", "result_key": "Identities" }, "ListVerifiedEmailAddresses": { "result_key": "VerifiedEmailAddresses" } } -} +} \ No newline at end of file diff --git a/models/apis/pinpoint/2016-12-01/api-2.json b/models/apis/pinpoint/2016-12-01/api-2.json index 18c2d07d827..f5e0cb72589 100644 --- a/models/apis/pinpoint/2016-12-01/api-2.json +++ b/models/apis/pinpoint/2016-12-01/api-2.json @@ -9,6 +9,33 @@ "jsonVersion" : "1.1" }, "operations" : { + "CreateApp" : { + "name" : "CreateApp", + "http" : { + "method" : "POST", + "requestUri" : "/v1/apps", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateAppRequest" + }, + "output" : { + "shape" : "CreateAppResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "CreateCampaign" : { "name" : "CreateCampaign", "http" : { @@ -144,6 +171,33 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteApp" : { + "name" : "DeleteApp", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteAppRequest" + }, + "output" : { + "shape" : "DeleteAppResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteCampaign" : { "name" : "DeleteCampaign", "http" : { @@ -360,6 +414,33 @@ "shape" : "TooManyRequestsException" } ] }, + "GetApp" : { + "name" : "GetApp", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetAppRequest" + }, + "output" : { + "shape" : "GetAppResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "GetApplicationSettings" : { "name" : "GetApplicationSettings", "http" : { @@ -387,6 +468,33 @@ "shape" : "TooManyRequestsException" } ] }, + "GetApps" : { + "name" : "GetApps", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetAppsRequest" + }, + "output" : { + "shape" : "GetAppsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "GetCampaign" : { "name" : "GetCampaign", "http" : { @@ -1387,6 +1495,17 @@ } } }, + "ApplicationResponse" : { + "type" : "structure", + "members" : { + "Id" : { + "shape" : "__string" + }, + "Name" : { + "shape" : "__string" + } + } + }, "ApplicationSettingsResource" : { "type" : "structure", "members" : { @@ -1404,6 +1523,17 @@ } } }, + "ApplicationsResponse" : { + "type" : "structure", + "members" : { + "Item" : { + "shape" : "ListOfApplicationResponse" + }, + "NextToken" : { + "shape" : "__string" + } + } + }, "AttributeDimension" : { "type" : "structure", "members" : { @@ -1440,6 +1570,9 @@ "Body" : { "shape" : "__string" }, + "FromAddress" : { + "shape" : "__string" + }, "HtmlBody" : { "shape" : "__string" }, @@ -1562,6 +1695,34 @@ "type" : "string", "enum" : [ "GCM", "APNS", "APNS_SANDBOX", "ADM", "SMS", "EMAIL" ] }, + "CreateAppRequest" : { + "type" : "structure", + "members" : { + "CreateApplicationRequest" : { + "shape" : "CreateApplicationRequest" + } + }, + "required" : [ "CreateApplicationRequest" ], + "payload" : "CreateApplicationRequest" + }, + "CreateAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, + "CreateApplicationRequest" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "__string" + } + } + }, "CreateCampaignRequest" : { "type" : "structure", "members" : { @@ -1716,6 +1877,27 @@ "required" : [ "APNSSandboxChannelResponse" ], "payload" : "APNSSandboxChannelResponse" }, + "DeleteAppRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, "DeleteCampaignRequest" : { "type" : "structure", "members" : { @@ -2329,6 +2511,27 @@ "required" : [ "APNSSandboxChannelResponse" ], "payload" : "APNSSandboxChannelResponse" }, + "GetAppRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, "GetApplicationSettingsRequest" : { "type" : "structure", "members" : { @@ -2350,6 +2553,31 @@ "required" : [ "ApplicationSettingsResource" ], "payload" : "ApplicationSettingsResource" }, + "GetAppsRequest" : { + "type" : "structure", + "members" : { + "PageSize" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "page-size" + }, + "Token" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "token" + } + } + }, + "GetAppsResponse" : { + "type" : "structure", + "members" : { + "ApplicationsResponse" : { + "shape" : "ApplicationsResponse" + } + }, + "required" : [ "ApplicationsResponse" ], + "payload" : "ApplicationsResponse" + }, "GetCampaignActivitiesRequest" : { "type" : "structure", "members" : { @@ -2975,6 +3203,12 @@ "shape" : "ActivityResponse" } }, + "ListOfApplicationResponse" : { + "type" : "list", + "member" : { + "shape" : "ApplicationResponse" + } + }, "ListOfCampaignResponse" : { "type" : "list", "member" : { @@ -3104,6 +3338,9 @@ "MediaUrl" : { "shape" : "__string" }, + "RawContent" : { + "shape" : "__string" + }, "SilentPush" : { "shape" : "__boolean" }, diff --git a/models/apis/pinpoint/2016-12-01/docs-2.json b/models/apis/pinpoint/2016-12-01/docs-2.json index 269407585a9..f2553aa41d2 100644 --- a/models/apis/pinpoint/2016-12-01/docs-2.json +++ b/models/apis/pinpoint/2016-12-01/docs-2.json @@ -2,11 +2,13 @@ "version" : "2.0", "service" : null, "operations" : { + "CreateApp" : "Used to create an app.", "CreateCampaign" : "Creates or updates a campaign.", "CreateImportJob" : "Creates or updates an import job.", "CreateSegment" : "Used to create or update a segment.", "DeleteApnsChannel" : "Deletes the APNs channel for an app.", "DeleteApnsSandboxChannel" : "Delete an APNS sandbox channel", + "DeleteApp" : "Deletes an app.", "DeleteCampaign" : "Deletes a campaign.", "DeleteEmailChannel" : "Delete an email channel", "DeleteEventStream" : "Deletes the event stream for an app.", @@ -15,7 +17,9 @@ "DeleteSmsChannel" : "Delete an SMS channel", "GetApnsChannel" : "Returns information about the APNs channel for an app.", "GetApnsSandboxChannel" : "Get an APNS sandbox channel", + "GetApp" : "Returns information about an app.", "GetApplicationSettings" : "Used to request the settings for an app.", + "GetApps" : "Returns information about your apps.", "GetCampaign" : "Returns information about a campaign.", "GetCampaignActivities" : "Returns information about the activity performed by a campaign.", "GetCampaignVersion" : "Returns information about a specific version of a campaign.", @@ -94,10 +98,20 @@ "MessageRequest$Addresses" : "A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value." } }, + "ApplicationResponse" : { + "base" : "Application Response.", + "refs" : { + "ApplicationsResponse$Item" : "List of applications returned in this page." + } + }, "ApplicationSettingsResource" : { "base" : "Application settings.", "refs" : { } }, + "ApplicationsResponse" : { + "base" : "Get Applications Result.", + "refs" : { } + }, "AttributeDimension" : { "base" : "Custom attibute dimension", "refs" : { @@ -163,12 +177,16 @@ "ChannelType" : { "base" : null, "refs" : { - "AddressConfiguration$ChannelType" : "Type of channel of this address", - "EndpointBatchItem$ChannelType" : "The channel type.\n\nValid values: APNS, GCM", - "EndpointRequest$ChannelType" : "The channel type.\n\nValid values: APNS, GCM", - "EndpointResponse$ChannelType" : "The channel type.\n\nValid values: APNS, GCM" + "AddressConfiguration$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointBatchItem$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointRequest$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointResponse$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL" } }, + "CreateApplicationRequest" : { + "base" : "Application Request.", + "refs" : { } + }, "DefaultMessage" : { "base" : "Default Message across push notification, email, and sms.", "refs" : { @@ -325,6 +343,10 @@ "base" : null, "refs" : { } }, + "ListOfApplicationResponse" : { + "base" : null, + "refs" : { } + }, "ListOfCampaignResponse" : { "base" : null, "refs" : { } @@ -642,7 +664,7 @@ "APNSChannelRequest$PrivateKey" : "The certificate private key.", "APNSChannelResponse$ApplicationId" : "The ID of the application to which the channel applies.", "APNSChannelResponse$CreationDate" : "When was this segment created", - "APNSChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "APNSChannelResponse$Id" : "Channel ID. Not used. Present only for backwards compatibility.", "APNSChannelResponse$LastModifiedBy" : "Who last updated this entry", "APNSChannelResponse$LastModifiedDate" : "Last date this was updated", "APNSChannelResponse$Platform" : "The platform type. Will be APNS.", @@ -661,7 +683,7 @@ "APNSSandboxChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", "APNSSandboxChannelResponse$LastModifiedBy" : "Who last updated this entry", "APNSSandboxChannelResponse$LastModifiedDate" : "Last date this was updated", - "APNSSandboxChannelResponse$Platform" : "The platform type. Will be APNS.", + "APNSSandboxChannelResponse$Platform" : "The platform type. Will be APNS_SANDBOX.", "ActivityResponse$ApplicationId" : "The ID of the application to which the campaign applies.", "ActivityResponse$CampaignId" : "The ID of the campaign to which the activity applies.", "ActivityResponse$End" : "The actual time the activity was marked CANCELLED or COMPLETED. Provided in ISO 8601 format.", @@ -674,9 +696,13 @@ "AddressConfiguration$BodyOverride" : "Body override. If specified will override default body.", "AddressConfiguration$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "AddressConfiguration$TitleOverride" : "Title override. If specified will override default title if applicable.", + "ApplicationResponse$Id" : "The unique application ID.", + "ApplicationResponse$Name" : "The display name of the application.", "ApplicationSettingsResource$ApplicationId" : "The unique ID for the application.", "ApplicationSettingsResource$LastModifiedDate" : "The date that the settings were last updated in ISO 8601 format.", + "ApplicationsResponse$NextToken" : "The string that you use in a subsequent request to get the next page of results in a paginated response.", "CampaignEmailMessage$Body" : "The email text body.", + "CampaignEmailMessage$FromAddress" : "The email address used to send the email from. Defaults to use FromAddress specified in the Email Channel.", "CampaignEmailMessage$HtmlBody" : "The email html body.", "CampaignEmailMessage$Title" : "The email title (Or subject).", "CampaignResponse$ApplicationId" : "The ID of the application to which the campaign applies.", @@ -691,6 +717,7 @@ "CampaignSmsMessage$Body" : "The SMS text body.", "CampaignSmsMessage$SenderId" : "Sender ID of sent message.", "CampaignsResponse$NextToken" : "The string that you use in a subsequent request to get the next page of results in a paginated response.", + "CreateApplicationRequest$Name" : "The display name of the application. Used in the Amazon Pinpoint console.", "DefaultMessage$Body" : "The message body of the notification, the email body or the text message.", "DefaultPushNotificationMessage$Body" : "The message body of the notification, the email body or the text message.", "DefaultPushNotificationMessage$Title" : "The message title that displays above the message on the user's device.", @@ -698,7 +725,7 @@ "EmailChannelRequest$FromAddress" : "The email address used to send emails from.", "EmailChannelRequest$Identity" : "The ARN of an identity verified with SES.", "EmailChannelRequest$RoleArn" : "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service", - "EmailChannelResponse$ApplicationId" : "Application id", + "EmailChannelResponse$ApplicationId" : "The unique ID of the application to which the email channel belongs.", "EmailChannelResponse$CreationDate" : "The date that the settings were last updated in ISO 8601 format.", "EmailChannelResponse$FromAddress" : "The email address used to send emails from.", "EmailChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", @@ -711,7 +738,7 @@ "EndpointBatchItem$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointBatchItem$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", "EndpointBatchItem$Id" : "The unique Id for the Endpoint in the batch.", - "EndpointBatchItem$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointBatchItem$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointBatchItem$RequestId" : "The unique ID for the most recent request to update the endpoint.", "EndpointDemographic$AppVersion" : "The version of the application associated with the endpoint.", "EndpointDemographic$Locale" : "The endpoint locale in the following format: The ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO 3166-1 alpha-2 value.\n", @@ -728,7 +755,7 @@ "EndpointRequest$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointRequest$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointRequest$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", - "EndpointRequest$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointRequest$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointRequest$RequestId" : "The unique ID for the most recent request to update the endpoint.", "EndpointResponse$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointResponse$ApplicationId" : "The ID of the application associated with the endpoint.", @@ -737,7 +764,7 @@ "EndpointResponse$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointResponse$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", "EndpointResponse$Id" : "The unique ID that you assigned to the endpoint. The ID should be a globally unique identifier (GUID) to ensure that it is unique compared to all other endpoints for the application.", - "EndpointResponse$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointResponse$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointResponse$RequestId" : "The unique ID for the most recent request to update the endpoint.", "EndpointUser$UserId" : "The unique ID of the user.", "EventStream$ApplicationId" : "The ID of the application from which events should be published.", @@ -750,7 +777,7 @@ "GCMChannelResponse$ApplicationId" : "The ID of the application to which the channel applies.", "GCMChannelResponse$CreationDate" : "When was this segment created", "GCMChannelResponse$Credential" : "The GCM API key from Google.", - "GCMChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "GCMChannelResponse$Id" : "Channel ID. Not used. Present only for backwards compatibility.", "GCMChannelResponse$LastModifiedBy" : "Who last updated this entry", "GCMChannelResponse$LastModifiedDate" : "Last date this was updated", "GCMChannelResponse$Platform" : "The platform type. Will be GCM", @@ -787,6 +814,7 @@ "Message$ImageUrl" : "The URL that points to an image used in the push notification.", "Message$JsonBody" : "The JSON payload used for a silent push.", "Message$MediaUrl" : "The URL that points to the media resource, for example a .mp4 or .gif file.", + "Message$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "Message$Title" : "The message title that displays above the message on the user's device.", "Message$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "MessageBody$Message" : "The error message returned from the API.", @@ -798,7 +826,7 @@ "QuietTime$End" : "The default end time for quiet time in ISO 8601 format.", "QuietTime$Start" : "The default start time for quiet time in ISO 8601 format.", "SMSChannelRequest$SenderId" : "Sender identifier of your messages.", - "SMSChannelResponse$ApplicationId" : "Application id", + "SMSChannelResponse$ApplicationId" : "The unique ID of the application to which the SMS channel belongs.", "SMSChannelResponse$CreationDate" : "The date that the settings were last updated in ISO 8601 format.", "SMSChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", "SMSChannelResponse$LastModifiedBy" : "Who last updated this entry", diff --git a/service/codedeploy/api.go b/service/codedeploy/api.go index 7fe90f906af..51e27a4a4a2 100644 --- a/service/codedeploy/api.go +++ b/service/codedeploy/api.go @@ -1230,6 +1230,18 @@ func (c *CodeDeploy) CreateDeploymentGroupRequest(input *CreateDeploymentGroupIn // invalid format. For information about deployment configuration format, see // CreateDeploymentConfig. // +// * ErrCodeInvalidEC2TagCombinationException "InvalidEC2TagCombinationException" +// A call was submitted that specified both Ec2TagFilters and Ec2TagSet, but +// only one of these data types can be used in a single call. +// +// * ErrCodeInvalidOnPremisesTagCombinationException "InvalidOnPremisesTagCombinationException" +// A call was submitted that specified both OnPremisesTagFilters and OnPremisesTagSet, +// but only one of these data types can be used in a single call. +// +// * ErrCodeTagSetListLimitExceededException "TagSetListLimitExceededException" +// The number of tag groups included in the tag set list exceeded the maximum +// allowed limit of 3. +// // Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentGroup func (c *CodeDeploy) CreateDeploymentGroup(input *CreateDeploymentGroupInput) (*CreateDeploymentGroupOutput, error) { req, out := c.CreateDeploymentGroupRequest(input) @@ -4050,6 +4062,18 @@ func (c *CodeDeploy) UpdateDeploymentGroupRequest(input *UpdateDeploymentGroupIn // invalid format. For information about deployment configuration format, see // CreateDeploymentConfig. // +// * ErrCodeInvalidEC2TagCombinationException "InvalidEC2TagCombinationException" +// A call was submitted that specified both Ec2TagFilters and Ec2TagSet, but +// only one of these data types can be used in a single call. +// +// * ErrCodeInvalidOnPremisesTagCombinationException "InvalidOnPremisesTagCombinationException" +// A call was submitted that specified both OnPremisesTagFilters and OnPremisesTagSet, +// but only one of these data types can be used in a single call. +// +// * ErrCodeTagSetListLimitExceededException "TagSetListLimitExceededException" +// The number of tag groups included in the tag set list exceeded the maximum +// allowed limit of 3. +// // Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/UpdateDeploymentGroup func (c *CodeDeploy) UpdateDeploymentGroup(input *UpdateDeploymentGroupInput) (*UpdateDeploymentGroupOutput, error) { req, out := c.UpdateDeploymentGroupRequest(input) @@ -5125,16 +5149,28 @@ type CreateDeploymentGroupInput struct { DeploymentStyle *DeploymentStyle `locationName:"deploymentStyle" type:"structure"` // The Amazon EC2 tags on which to filter. The deployment group will include - // EC2 instances with any of the specified tags. + // EC2 instances with any of the specified tags. Cannot be used in the same + // call as ec2TagSet. Ec2TagFilters []*EC2TagFilter `locationName:"ec2TagFilters" type:"list"` + // Information about groups of tags applied to EC2 instances. The deployment + // group will include only EC2 instances identified by all the tag groups. Cannot + // be used in the same call as ec2TagFilters. + Ec2TagSet *EC2TagSet `locationName:"ec2TagSet" type:"structure"` + // Information about the load balancer used in a deployment. LoadBalancerInfo *LoadBalancerInfo `locationName:"loadBalancerInfo" type:"structure"` // The on-premises instance tags on which to filter. The deployment group will - // include on-premises instances with any of the specified tags. + // include on-premises instances with any of the specified tags. Cannot be used + // in the same call as OnPremisesTagSet. OnPremisesInstanceTagFilters []*TagFilter `locationName:"onPremisesInstanceTagFilters" type:"list"` + // Information about groups of tags applied to on-premises instances. The deployment + // group will include only on-premises instances identified by all the tag groups. + // Cannot be used in the same call as onPremisesInstanceTagFilters. + OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // A service role ARN that allows AWS CodeDeploy to act on the user's behalf // when interacting with AWS services. // @@ -5239,6 +5275,12 @@ func (s *CreateDeploymentGroupInput) SetEc2TagFilters(v []*EC2TagFilter) *Create return s } +// SetEc2TagSet sets the Ec2TagSet field's value. +func (s *CreateDeploymentGroupInput) SetEc2TagSet(v *EC2TagSet) *CreateDeploymentGroupInput { + s.Ec2TagSet = v + return s +} + // SetLoadBalancerInfo sets the LoadBalancerInfo field's value. func (s *CreateDeploymentGroupInput) SetLoadBalancerInfo(v *LoadBalancerInfo) *CreateDeploymentGroupInput { s.LoadBalancerInfo = v @@ -5251,6 +5293,12 @@ func (s *CreateDeploymentGroupInput) SetOnPremisesInstanceTagFilters(v []*TagFil return s } +// SetOnPremisesTagSet sets the OnPremisesTagSet field's value. +func (s *CreateDeploymentGroupInput) SetOnPremisesTagSet(v *OnPremisesTagSet) *CreateDeploymentGroupInput { + s.OnPremisesTagSet = v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *CreateDeploymentGroupInput) SetServiceRoleArn(v string) *CreateDeploymentGroupInput { s.ServiceRoleArn = &v @@ -5768,9 +5816,15 @@ type DeploymentGroupInfo struct { // you want to run and whether to route deployment traffic behind a load balancer. DeploymentStyle *DeploymentStyle `locationName:"deploymentStyle" type:"structure"` - // The Amazon EC2 tags on which to filter. + // The Amazon EC2 tags on which to filter. The deployment group includes EC2 + // instances with any of the specified tags. Ec2TagFilters []*EC2TagFilter `locationName:"ec2TagFilters" type:"list"` + // Information about groups of tags applied to an EC2 instance. The deployment + // group includes only EC2 instances identified by all the tag groups. Cannot + // be used in the same call as ec2TagFilters. + Ec2TagSet *EC2TagSet `locationName:"ec2TagSet" type:"structure"` + // Information about the most recent attempted deployment to the deployment // group. LastAttemptedDeployment *LastDeploymentInfo `locationName:"lastAttemptedDeployment" type:"structure"` @@ -5782,9 +5836,15 @@ type DeploymentGroupInfo struct { // Information about the load balancer to use in a deployment. LoadBalancerInfo *LoadBalancerInfo `locationName:"loadBalancerInfo" type:"structure"` - // The on-premises instance tags on which to filter. + // The on-premises instance tags on which to filter. The deployment group includes + // on-premises instances with any of the specified tags. OnPremisesInstanceTagFilters []*TagFilter `locationName:"onPremisesInstanceTagFilters" type:"list"` + // Information about groups of tags applied to an on-premises instance. The + // deployment group includes only on-premises instances identified by all the + // tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. + OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // A service role ARN. ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` @@ -5866,6 +5926,12 @@ func (s *DeploymentGroupInfo) SetEc2TagFilters(v []*EC2TagFilter) *DeploymentGro return s } +// SetEc2TagSet sets the Ec2TagSet field's value. +func (s *DeploymentGroupInfo) SetEc2TagSet(v *EC2TagSet) *DeploymentGroupInfo { + s.Ec2TagSet = v + return s +} + // SetLastAttemptedDeployment sets the LastAttemptedDeployment field's value. func (s *DeploymentGroupInfo) SetLastAttemptedDeployment(v *LastDeploymentInfo) *DeploymentGroupInfo { s.LastAttemptedDeployment = v @@ -5890,6 +5956,12 @@ func (s *DeploymentGroupInfo) SetOnPremisesInstanceTagFilters(v []*TagFilter) *D return s } +// SetOnPremisesTagSet sets the OnPremisesTagSet field's value. +func (s *DeploymentGroupInfo) SetOnPremisesTagSet(v *OnPremisesTagSet) *DeploymentGroupInfo { + s.OnPremisesTagSet = v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *DeploymentGroupInfo) SetServiceRoleArn(v string) *DeploymentGroupInfo { s.ServiceRoleArn = &v @@ -6516,6 +6588,33 @@ func (s *EC2TagFilter) SetValue(v string) *EC2TagFilter { return s } +// Information about groups of EC2 instance tags. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/EC2TagSet +type EC2TagSet struct { + _ struct{} `type:"structure"` + + // A list containing other lists of EC2 instance tag groups. In order for an + // instance to be included in the deployment group, it must be identified by + // all the tag groups in the list. + Ec2TagSetList [][]*EC2TagFilter `locationName:"ec2TagSetList" type:"list"` +} + +// String returns the string representation +func (s EC2TagSet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EC2TagSet) GoString() string { + return s.String() +} + +// SetEc2TagSetList sets the Ec2TagSetList field's value. +func (s *EC2TagSet) SetEc2TagSetList(v [][]*EC2TagFilter) *EC2TagSet { + s.Ec2TagSetList = v + return s +} + // Information about a load balancer in Elastic Load Balancing to use in a deployment. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ELBInfo type ELBInfo struct { @@ -8446,6 +8545,33 @@ func (s *MinimumHealthyHosts) SetValue(v int64) *MinimumHealthyHosts { return s } +// Information about groups of on-premises instance tags. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/OnPremisesTagSet +type OnPremisesTagSet struct { + _ struct{} `type:"structure"` + + // A list containing other lists of on-premises instance tag groups. In order + // for an instance to be included in the deployment group, it must be identified + // by all the tag groups in the list. + OnPremisesTagSetList [][]*TagFilter `locationName:"onPremisesTagSetList" type:"list"` +} + +// String returns the string representation +func (s OnPremisesTagSet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s OnPremisesTagSet) GoString() string { + return s.String() +} + +// SetOnPremisesTagSetList sets the OnPremisesTagSetList field's value. +func (s *OnPremisesTagSet) SetOnPremisesTagSetList(v [][]*TagFilter) *OnPremisesTagSet { + s.OnPremisesTagSetList = v + return s +} + // Represents the input of a RegisterApplicationRevision operation. // Please also see https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RegisterApplicationRevisionInput type RegisterApplicationRevisionInput struct { @@ -9098,8 +9224,14 @@ type TargetInstances struct { // for a blue/green deployment. AutoScalingGroups []*string `locationName:"autoScalingGroups" type:"list"` + // Information about the groups of EC2 instance tags that an instance must be + // identified by in order for it to be included in the replacement environment + // for a blue/green deployment. Cannot be used in the same call as tagFilters. + Ec2TagSet *EC2TagSet `locationName:"ec2TagSet" type:"structure"` + // The tag filter key, type, and value used to identify Amazon EC2 instances - // in a replacement environment for a blue/green deployment. + // in a replacement environment for a blue/green deployment. Cannot be used + // in the same call as ec2TagSet. TagFilters []*EC2TagFilter `locationName:"tagFilters" type:"list"` } @@ -9119,6 +9251,12 @@ func (s *TargetInstances) SetAutoScalingGroups(v []*string) *TargetInstances { return s } +// SetEc2TagSet sets the Ec2TagSet field's value. +func (s *TargetInstances) SetEc2TagSet(v *EC2TagSet) *TargetInstances { + s.Ec2TagSet = v + return s +} + // SetTagFilters sets the TagFilters field's value. func (s *TargetInstances) SetTagFilters(v []*EC2TagFilter) *TargetInstances { s.TagFilters = v @@ -9317,6 +9455,10 @@ type UpdateDeploymentGroupInput struct { // do not enter any tag names. Ec2TagFilters []*EC2TagFilter `locationName:"ec2TagFilters" type:"list"` + // Information about groups of tags applied to on-premises instances. The deployment + // group will include only EC2 instances identified by all the tag groups. + Ec2TagSet *EC2TagSet `locationName:"ec2TagSet" type:"structure"` + // Information about the load balancer used in a deployment. LoadBalancerInfo *LoadBalancerInfo `locationName:"loadBalancerInfo" type:"structure"` @@ -9328,6 +9470,10 @@ type UpdateDeploymentGroupInput struct { // tags, do not enter any tag names. OnPremisesInstanceTagFilters []*TagFilter `locationName:"onPremisesInstanceTagFilters" type:"list"` + // Information about an on-premises instance tag set. The deployment group will + // include only on-premises instances identified by all the tag groups. + OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // A replacement ARN for the service role, if you want to change it. ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` @@ -9429,6 +9575,12 @@ func (s *UpdateDeploymentGroupInput) SetEc2TagFilters(v []*EC2TagFilter) *Update return s } +// SetEc2TagSet sets the Ec2TagSet field's value. +func (s *UpdateDeploymentGroupInput) SetEc2TagSet(v *EC2TagSet) *UpdateDeploymentGroupInput { + s.Ec2TagSet = v + return s +} + // SetLoadBalancerInfo sets the LoadBalancerInfo field's value. func (s *UpdateDeploymentGroupInput) SetLoadBalancerInfo(v *LoadBalancerInfo) *UpdateDeploymentGroupInput { s.LoadBalancerInfo = v @@ -9447,6 +9599,12 @@ func (s *UpdateDeploymentGroupInput) SetOnPremisesInstanceTagFilters(v []*TagFil return s } +// SetOnPremisesTagSet sets the OnPremisesTagSet field's value. +func (s *UpdateDeploymentGroupInput) SetOnPremisesTagSet(v *OnPremisesTagSet) *UpdateDeploymentGroupInput { + s.OnPremisesTagSet = v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *UpdateDeploymentGroupInput) SetServiceRoleArn(v string) *UpdateDeploymentGroupInput { s.ServiceRoleArn = &v diff --git a/service/codedeploy/errors.go b/service/codedeploy/errors.go index cf425556c37..1ff3ee3438c 100644 --- a/service/codedeploy/errors.go +++ b/service/codedeploy/errors.go @@ -305,6 +305,13 @@ const ( // and "WITHOUT_TRAFFIC_CONTROL". ErrCodeInvalidDeploymentStyleException = "InvalidDeploymentStyleException" + // ErrCodeInvalidEC2TagCombinationException for service response error code + // "InvalidEC2TagCombinationException". + // + // A call was submitted that specified both Ec2TagFilters and Ec2TagSet, but + // only one of these data types can be used in a single call. + ErrCodeInvalidEC2TagCombinationException = "InvalidEC2TagCombinationException" + // ErrCodeInvalidEC2TagException for service response error code // "InvalidEC2TagException". // @@ -376,6 +383,13 @@ const ( // The next token was specified in an invalid format. ErrCodeInvalidNextTokenException = "InvalidNextTokenException" + // ErrCodeInvalidOnPremisesTagCombinationException for service response error code + // "InvalidOnPremisesTagCombinationException". + // + // A call was submitted that specified both OnPremisesTagFilters and OnPremisesTagSet, + // but only one of these data types can be used in a single call. + ErrCodeInvalidOnPremisesTagCombinationException = "InvalidOnPremisesTagCombinationException" + // ErrCodeInvalidOperationException for service response error code // "InvalidOperationException". // @@ -503,6 +517,13 @@ const ( // A tag was not specified. ErrCodeTagRequiredException = "TagRequiredException" + // ErrCodeTagSetListLimitExceededException for service response error code + // "TagSetListLimitExceededException". + // + // The number of tag groups included in the tag set list exceeded the maximum + // allowed limit of 3. + ErrCodeTagSetListLimitExceededException = "TagSetListLimitExceededException" + // ErrCodeTriggerTargetsLimitExceededException for service response error code // "TriggerTargetsLimitExceededException". // diff --git a/service/configservice/api.go b/service/configservice/api.go index 42e19b2fee8..55061a82f11 100644 --- a/service/configservice/api.go +++ b/service/configservice/api.go @@ -1538,6 +1538,126 @@ func (c *ConfigService) GetComplianceSummaryByResourceTypeWithContext(ctx aws.Co return out, req.Send() } +const opGetDiscoveredResourceCounts = "GetDiscoveredResourceCounts" + +// GetDiscoveredResourceCountsRequest generates a "aws/request.Request" representing the +// client's request for the GetDiscoveredResourceCounts operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetDiscoveredResourceCounts for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetDiscoveredResourceCounts method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetDiscoveredResourceCountsRequest method. +// req, resp := client.GetDiscoveredResourceCountsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCounts +func (c *ConfigService) GetDiscoveredResourceCountsRequest(input *GetDiscoveredResourceCountsInput) (req *request.Request, output *GetDiscoveredResourceCountsOutput) { + op := &request.Operation{ + Name: opGetDiscoveredResourceCounts, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetDiscoveredResourceCountsInput{} + } + + output = &GetDiscoveredResourceCountsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDiscoveredResourceCounts API operation for AWS Config. +// +// Returns the resource types, the number of each resource type, and the total +// number of resources that AWS Config is recording in this region for your +// AWS account. +// +// Example +// +// AWS Config is recording three resource types in the US East (Ohio) Region +// for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets. +// +// You make a call to the GetDiscoveredResourceCounts action and specify that +// you want all resource types. +// +// AWS Config returns the following: +// +// The resource types (EC2 instances, IAM users, and S3 buckets) +// +// The number of each resource type (25, 20, and 15) +// +// The total number of all resources (60) +// +// The response is paginated. By default, AWS Config lists 100 ResourceCount +// objects on each page. You can customize this number with the limit parameter. +// The response includes a nextToken string. To get the next page of results, +// run the request again and specify the string for the nextToken parameter. +// +// If you make a call to the GetDiscoveredResourceCounts action, you may not +// immediately receive resource counts in the following situations: +// +// You are a new AWS Config customer +// +// You just enabled resource recording +// +// It may take a few minutes for AWS Config to record and count your resources. +// Wait a few minutes and then retry the GetDiscoveredResourceCounts action. +// +// 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 Config's +// API operation GetDiscoveredResourceCounts for usage and error information. +// +// Returned Error Codes: +// * ErrCodeValidationException "ValidationException" +// The requested action is not valid. +// +// * ErrCodeInvalidLimitException "InvalidLimitException" +// The specified limit is outside the allowable range. +// +// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" +// The specified next token is invalid. Specify the NextToken string that was +// returned in the previous response to get the next page of results. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCounts +func (c *ConfigService) GetDiscoveredResourceCounts(input *GetDiscoveredResourceCountsInput) (*GetDiscoveredResourceCountsOutput, error) { + req, out := c.GetDiscoveredResourceCountsRequest(input) + return out, req.Send() +} + +// GetDiscoveredResourceCountsWithContext is the same as GetDiscoveredResourceCounts with the addition of +// the ability to pass a context and additional request options. +// +// See GetDiscoveredResourceCounts 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 *ConfigService) GetDiscoveredResourceCountsWithContext(ctx aws.Context, input *GetDiscoveredResourceCountsInput, opts ...request.Option) (*GetDiscoveredResourceCountsOutput, error) { + req, out := c.GetDiscoveredResourceCountsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetResourceConfigHistory = "GetResourceConfigHistory" // GetResourceConfigHistoryRequest generates a "aws/request.Request" representing the @@ -1593,11 +1713,10 @@ func (c *ConfigService) GetResourceConfigHistoryRequest(input *GetResourceConfig // contains details about each state of the resource during the specified time // interval. // -// The response is paginated, and by default, AWS Config returns a limit of -// 10 configuration items per page. You can customize this number with the limit -// parameter. The response includes a nextToken string, and to get the next -// page of results, run the request again and enter this string for the nextToken -// parameter. +// The response is paginated. By default, AWS Config returns a limit of 10 configuration +// items per page. You can customize this number with the limit parameter. The +// response includes a nextToken string. To get the next page of results, run +// the request again and specify the string for the nextToken parameter. // // Each call to the API is limited to span a duration of seven days. It is likely // that the number of records returned is smaller than the specified limit. @@ -1759,10 +1878,10 @@ func (c *ConfigService) ListDiscoveredResourcesRequest(input *ListDiscoveredReso // You can specify either resource IDs or a resource name but not both in the // same request. // -// The response is paginated, and by default AWS Config lists 100 resource identifiers +// The response is paginated. By default, AWS Config lists 100 resource identifiers // on each page. You can customize this number with the limit parameter. The -// response includes a nextToken string, and to get the next page of results, -// run the request again and enter this string for the nextToken parameter. +// response includes a nextToken string. To get the next page of results, run +// the request again and specify the string for the nextToken parameter. // // 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 @@ -5232,6 +5351,117 @@ func (s *GetComplianceSummaryByResourceTypeOutput) SetComplianceSummariesByResou return s } +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCountsRequest +type GetDiscoveredResourceCountsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of ResourceCount objects returned on each page. The default + // is 100. You cannot specify a limit greater than 100. If you specify 0, AWS + // Config uses the default. + Limit *int64 `locationName:"limit" type:"integer"` + + // The nextToken string returned on a previous page that you use to get the + // next page of results in a paginated response. + NextToken *string `locationName:"nextToken" type:"string"` + + // The comma-separated list that specifies the resource types that you want + // the AWS Config to return. For example, ("AWS::EC2::Instance", "AWS::IAM::User"). + // + // If a value for resourceTypes is not specified, AWS Config returns all resource + // types that AWS Config is recording in the region for your account. + // + // If the configuration recorder is turned off, AWS Config returns an empty + // list of ResourceCount objects. If the configuration recorder is not recording + // a specific resource type (for example, S3 buckets), that resource type is + // not returned in the list of ResourceCount objects. + ResourceTypes []*string `locationName:"resourceTypes" type:"list"` +} + +// String returns the string representation +func (s GetDiscoveredResourceCountsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDiscoveredResourceCountsInput) GoString() string { + return s.String() +} + +// SetLimit sets the Limit field's value. +func (s *GetDiscoveredResourceCountsInput) SetLimit(v int64) *GetDiscoveredResourceCountsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetDiscoveredResourceCountsInput) SetNextToken(v string) *GetDiscoveredResourceCountsInput { + s.NextToken = &v + return s +} + +// SetResourceTypes sets the ResourceTypes field's value. +func (s *GetDiscoveredResourceCountsInput) SetResourceTypes(v []*string) *GetDiscoveredResourceCountsInput { + s.ResourceTypes = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCountsResponse +type GetDiscoveredResourceCountsOutput struct { + _ struct{} `type:"structure"` + + // The string that you use in a subsequent request to get the next page of results + // in a paginated response. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of ResourceCount objects. Each object is listed in descending order + // by the number of resources. + ResourceCounts []*ResourceCount `locationName:"resourceCounts" type:"list"` + + // The total number of resources that AWS Config is recording in the region + // for your account. If you specify resource types in the request, AWS Config + // returns only the total number of resources for those resource types. + // + // Example + // + // AWS Config is recording three resource types in the US East (Ohio) Region + // for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for + // a total of 60 resources. + // + // You make a call to the GetDiscoveredResourceCounts action and specify the + // resource type, "AWS::EC2::Instances" in the request. + // + // AWS Config returns 25 for totalDiscoveredResources. + TotalDiscoveredResources *int64 `locationName:"totalDiscoveredResources" type:"long"` +} + +// String returns the string representation +func (s GetDiscoveredResourceCountsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDiscoveredResourceCountsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *GetDiscoveredResourceCountsOutput) SetNextToken(v string) *GetDiscoveredResourceCountsOutput { + s.NextToken = &v + return s +} + +// SetResourceCounts sets the ResourceCounts field's value. +func (s *GetDiscoveredResourceCountsOutput) SetResourceCounts(v []*ResourceCount) *GetDiscoveredResourceCountsOutput { + s.ResourceCounts = v + return s +} + +// SetTotalDiscoveredResources sets the TotalDiscoveredResources field's value. +func (s *GetDiscoveredResourceCountsOutput) SetTotalDiscoveredResources(v int64) *GetDiscoveredResourceCountsOutput { + s.TotalDiscoveredResources = &v + return s +} + // The input for the GetResourceConfigHistory action. // Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistoryRequest type GetResourceConfigHistoryInput struct { @@ -5935,6 +6165,40 @@ func (s *Relationship) SetResourceType(v string) *Relationship { return s } +// An object that contains the resource type and the number of resources. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ResourceCount +type ResourceCount struct { + _ struct{} `type:"structure"` + + // The number of resources. + Count *int64 `locationName:"count" type:"long"` + + // The resource type, for example "AWS::EC2::Instance". + ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"` +} + +// String returns the string representation +func (s ResourceCount) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceCount) GoString() string { + return s.String() +} + +// SetCount sets the Count field's value. +func (s *ResourceCount) SetCount(v int64) *ResourceCount { + s.Count = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ResourceCount) SetResourceType(v string) *ResourceCount { + s.ResourceType = &v + return s +} + // The details that identify a resource that is discovered by AWS Config, including // the resource type, ID, and (if available) the custom resource name. // Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ResourceIdentifier @@ -6091,7 +6355,7 @@ type Source struct { // AWS Managed Config Rules (http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html). // // For custom rules, the identifier is the Amazon Resource Name (ARN) of the - // rule's AWS Lambda function, such as arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name. + // rule's AWS Lambda function, such as arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name. // // SourceIdentifier is a required field SourceIdentifier *string `min:"1" type:"string" required:"true"` @@ -6608,4 +6872,7 @@ const ( // ResourceTypeAwsCloudWatchAlarm is a ResourceType enum value ResourceTypeAwsCloudWatchAlarm = "AWS::CloudWatch::Alarm" + + // ResourceTypeAwsCloudFormationStack is a ResourceType enum value + ResourceTypeAwsCloudFormationStack = "AWS::CloudFormation::Stack" ) diff --git a/service/configservice/configserviceiface/interface.go b/service/configservice/configserviceiface/interface.go index 2a1210d64b1..d4d2e6c8218 100644 --- a/service/configservice/configserviceiface/interface.go +++ b/service/configservice/configserviceiface/interface.go @@ -128,6 +128,10 @@ type ConfigServiceAPI interface { GetComplianceSummaryByResourceTypeWithContext(aws.Context, *configservice.GetComplianceSummaryByResourceTypeInput, ...request.Option) (*configservice.GetComplianceSummaryByResourceTypeOutput, error) GetComplianceSummaryByResourceTypeRequest(*configservice.GetComplianceSummaryByResourceTypeInput) (*request.Request, *configservice.GetComplianceSummaryByResourceTypeOutput) + GetDiscoveredResourceCounts(*configservice.GetDiscoveredResourceCountsInput) (*configservice.GetDiscoveredResourceCountsOutput, error) + GetDiscoveredResourceCountsWithContext(aws.Context, *configservice.GetDiscoveredResourceCountsInput, ...request.Option) (*configservice.GetDiscoveredResourceCountsOutput, error) + GetDiscoveredResourceCountsRequest(*configservice.GetDiscoveredResourceCountsInput) (*request.Request, *configservice.GetDiscoveredResourceCountsOutput) + GetResourceConfigHistory(*configservice.GetResourceConfigHistoryInput) (*configservice.GetResourceConfigHistoryOutput, error) GetResourceConfigHistoryWithContext(aws.Context, *configservice.GetResourceConfigHistoryInput, ...request.Option) (*configservice.GetResourceConfigHistoryOutput, error) GetResourceConfigHistoryRequest(*configservice.GetResourceConfigHistoryInput) (*request.Request, *configservice.GetResourceConfigHistoryOutput) diff --git a/service/ec2/waiters.go b/service/ec2/waiters.go index c0a655fa0f0..8d4ff507797 100644 --- a/service/ec2/waiters.go +++ b/service/ec2/waiters.go @@ -1045,6 +1045,11 @@ func (c *EC2) WaitUntilSpotInstanceRequestFulfilledWithContext(ctx aws.Context, Matcher: request.PathAnyWaiterMatch, Argument: "SpotInstanceRequests[].Status.Code", Expected: "system-error", }, + { + State: request.RetryWaiterState, + Matcher: request.ErrorWaiterMatch, + Expected: "InvalidSpotInstanceRequestID.NotFound", + }, }, Logger: c.Config.Logger, NewRequest: func(opts []request.Option) (*request.Request, error) { diff --git a/service/elbv2/elbv2iface/interface.go b/service/elbv2/elbv2iface/interface.go index f4a5014d1da..ff290650d26 100644 --- a/service/elbv2/elbv2iface/interface.go +++ b/service/elbv2/elbv2iface/interface.go @@ -201,6 +201,12 @@ type ELBV2API interface { WaitUntilLoadBalancersDeleted(*elbv2.DescribeLoadBalancersInput) error WaitUntilLoadBalancersDeletedWithContext(aws.Context, *elbv2.DescribeLoadBalancersInput, ...request.WaiterOption) error + + WaitUntilTargetDeregistered(*elbv2.DescribeTargetHealthInput) error + WaitUntilTargetDeregisteredWithContext(aws.Context, *elbv2.DescribeTargetHealthInput, ...request.WaiterOption) error + + WaitUntilTargetInService(*elbv2.DescribeTargetHealthInput) error + WaitUntilTargetInServiceWithContext(aws.Context, *elbv2.DescribeTargetHealthInput, ...request.WaiterOption) error } var _ ELBV2API = (*elbv2.ELBV2)(nil) diff --git a/service/elbv2/waiters.go b/service/elbv2/waiters.go index 44fc1fc85cd..6d2537b2a68 100644 --- a/service/elbv2/waiters.go +++ b/service/elbv2/waiters.go @@ -166,3 +166,105 @@ func (c *ELBV2) WaitUntilLoadBalancersDeletedWithContext(ctx aws.Context, input return w.WaitWithContext(ctx) } + +// WaitUntilTargetDeregistered uses the Elastic Load Balancing v2 API operation +// DescribeTargetHealth to wait for a condition to be met before returning. +// If the condition is not meet within the max attempt window an error will +// be returned. +func (c *ELBV2) WaitUntilTargetDeregistered(input *DescribeTargetHealthInput) error { + return c.WaitUntilTargetDeregisteredWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilTargetDeregisteredWithContext is an extended version of WaitUntilTargetDeregistered. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// 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 *ELBV2) WaitUntilTargetDeregisteredWithContext(ctx aws.Context, input *DescribeTargetHealthInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilTargetDeregistered", + MaxAttempts: 40, + Delay: request.ConstantWaiterDelay(15 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.SuccessWaiterState, + Matcher: request.ErrorWaiterMatch, + Expected: "InvalidTarget", + }, + { + State: request.SuccessWaiterState, + Matcher: request.PathAllWaiterMatch, Argument: "TargetHealthDescriptions[].TargetHealth.State", + Expected: "unused", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeTargetHealthInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeTargetHealthRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} + +// WaitUntilTargetInService uses the Elastic Load Balancing v2 API operation +// DescribeTargetHealth to wait for a condition to be met before returning. +// If the condition is not meet within the max attempt window an error will +// be returned. +func (c *ELBV2) WaitUntilTargetInService(input *DescribeTargetHealthInput) error { + return c.WaitUntilTargetInServiceWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilTargetInServiceWithContext is an extended version of WaitUntilTargetInService. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// 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 *ELBV2) WaitUntilTargetInServiceWithContext(ctx aws.Context, input *DescribeTargetHealthInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilTargetInService", + MaxAttempts: 40, + Delay: request.ConstantWaiterDelay(15 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.SuccessWaiterState, + Matcher: request.PathAllWaiterMatch, Argument: "TargetHealthDescriptions[].TargetHealth.State", + Expected: "healthy", + }, + { + State: request.RetryWaiterState, + Matcher: request.ErrorWaiterMatch, + Expected: "InvalidInstance", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeTargetHealthInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeTargetHealthRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} diff --git a/service/pinpoint/api.go b/service/pinpoint/api.go index 43b72bdca06..cc0ece27aba 100644 --- a/service/pinpoint/api.go +++ b/service/pinpoint/api.go @@ -8,6 +8,92 @@ import ( "github.com/aws/aws-sdk-go/aws/request" ) +const opCreateApp = "CreateApp" + +// CreateAppRequest generates a "aws/request.Request" representing the +// client's request for the CreateApp operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See CreateApp for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the CreateApp method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the CreateAppRequest method. +// req, resp := client.CreateAppRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *Pinpoint) CreateAppRequest(input *CreateAppInput) (req *request.Request, output *CreateAppOutput) { + op := &request.Operation{ + Name: opCreateApp, + HTTPMethod: "POST", + HTTPPath: "/v1/apps", + } + + if input == nil { + input = &CreateAppInput{} + } + + output = &CreateAppOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateApp API operation for Amazon Pinpoint. +// +// Used to create an app. +// +// 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 Pinpoint's +// API operation CreateApp for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +func (c *Pinpoint) CreateApp(input *CreateAppInput) (*CreateAppOutput, error) { + req, out := c.CreateAppRequest(input) + return out, req.Send() +} + +// CreateAppWithContext is the same as CreateApp with the addition of +// the ability to pass a context and additional request options. +// +// See CreateApp 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 *Pinpoint) CreateAppWithContext(ctx aws.Context, input *CreateAppInput, opts ...request.Option) (*CreateAppOutput, error) { + req, out := c.CreateAppRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateCampaign = "CreateCampaign" // CreateCampaignRequest generates a "aws/request.Request" representing the @@ -438,6 +524,92 @@ func (c *Pinpoint) DeleteApnsSandboxChannelWithContext(ctx aws.Context, input *D return out, req.Send() } +const opDeleteApp = "DeleteApp" + +// DeleteAppRequest generates a "aws/request.Request" representing the +// client's request for the DeleteApp operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteApp for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteApp method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteAppRequest method. +// req, resp := client.DeleteAppRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *Pinpoint) DeleteAppRequest(input *DeleteAppInput) (req *request.Request, output *DeleteAppOutput) { + op := &request.Operation{ + Name: opDeleteApp, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apps/{application-id}", + } + + if input == nil { + input = &DeleteAppInput{} + } + + output = &DeleteAppOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteApp API operation for Amazon Pinpoint. +// +// Deletes an app. +// +// 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 Pinpoint's +// API operation DeleteApp for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +func (c *Pinpoint) DeleteApp(input *DeleteAppInput) (*DeleteAppOutput, error) { + req, out := c.DeleteAppRequest(input) + return out, req.Send() +} + +// DeleteAppWithContext is the same as DeleteApp with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteApp 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 *Pinpoint) DeleteAppWithContext(ctx aws.Context, input *DeleteAppInput, opts ...request.Option) (*DeleteAppOutput, error) { + req, out := c.DeleteAppRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteCampaign = "DeleteCampaign" // DeleteCampaignRequest generates a "aws/request.Request" representing the @@ -1126,6 +1298,92 @@ func (c *Pinpoint) GetApnsSandboxChannelWithContext(ctx aws.Context, input *GetA return out, req.Send() } +const opGetApp = "GetApp" + +// GetAppRequest generates a "aws/request.Request" representing the +// client's request for the GetApp operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetApp for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetApp method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetAppRequest method. +// req, resp := client.GetAppRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *Pinpoint) GetAppRequest(input *GetAppInput) (req *request.Request, output *GetAppOutput) { + op := &request.Operation{ + Name: opGetApp, + HTTPMethod: "GET", + HTTPPath: "/v1/apps/{application-id}", + } + + if input == nil { + input = &GetAppInput{} + } + + output = &GetAppOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetApp API operation for Amazon Pinpoint. +// +// Returns information about an app. +// +// 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 Pinpoint's +// API operation GetApp for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +func (c *Pinpoint) GetApp(input *GetAppInput) (*GetAppOutput, error) { + req, out := c.GetAppRequest(input) + return out, req.Send() +} + +// GetAppWithContext is the same as GetApp with the addition of +// the ability to pass a context and additional request options. +// +// See GetApp 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 *Pinpoint) GetAppWithContext(ctx aws.Context, input *GetAppInput, opts ...request.Option) (*GetAppOutput, error) { + req, out := c.GetAppRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetApplicationSettings = "GetApplicationSettings" // GetApplicationSettingsRequest generates a "aws/request.Request" representing the @@ -1212,6 +1470,92 @@ func (c *Pinpoint) GetApplicationSettingsWithContext(ctx aws.Context, input *Get return out, req.Send() } +const opGetApps = "GetApps" + +// GetAppsRequest generates a "aws/request.Request" representing the +// client's request for the GetApps operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetApps for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetApps method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetAppsRequest method. +// req, resp := client.GetAppsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *Pinpoint) GetAppsRequest(input *GetAppsInput) (req *request.Request, output *GetAppsOutput) { + op := &request.Operation{ + Name: opGetApps, + HTTPMethod: "GET", + HTTPPath: "/v1/apps", + } + + if input == nil { + input = &GetAppsInput{} + } + + output = &GetAppsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetApps API operation for Amazon Pinpoint. +// +// Returns information about your apps. +// +// 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 Pinpoint's +// API operation GetApps for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeMethodNotAllowedException "MethodNotAllowedException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +func (c *Pinpoint) GetApps(input *GetAppsInput) (*GetAppsOutput, error) { + req, out := c.GetAppsRequest(input) + return out, req.Send() +} + +// GetAppsWithContext is the same as GetApps with the addition of +// the ability to pass a context and additional request options. +// +// See GetApps 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 *Pinpoint) GetAppsWithContext(ctx aws.Context, input *GetAppsInput, opts ...request.Option) (*GetAppsOutput, error) { + req, out := c.GetAppsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetCampaign = "GetCampaign" // GetCampaignRequest generates a "aws/request.Request" representing the @@ -3761,7 +4105,7 @@ type APNSChannelResponse struct { // If the channel is enabled for sending messages. Enabled *bool `type:"boolean"` - // Channel ID. Not used, only for backwards compatibility. + // Channel ID. Not used. Present only for backwards compatibility. Id *string `type:"string"` // Is this channel archived @@ -4059,7 +4403,7 @@ type APNSSandboxChannelResponse struct { // Last date this was updated LastModifiedDate *string `type:"string"` - // The platform type. Will be APNS. + // The platform type. Will be APNS_SANDBOX. Platform *string `type:"string"` // Version of channel @@ -4296,7 +4640,7 @@ type AddressConfiguration struct { // Body override. If specified will override default body. BodyOverride *string `type:"string"` - // Type of channel of this address + // The channel type.Valid values: GCM | APNS | SMS | EMAIL ChannelType *string `type:"string" enum:"ChannelType"` Context map[string]*string `type:"map"` @@ -4333,27 +4677,60 @@ func (s *AddressConfiguration) SetChannelType(v string) *AddressConfiguration { return s } -// SetContext sets the Context field's value. -func (s *AddressConfiguration) SetContext(v map[string]*string) *AddressConfiguration { - s.Context = v - return s +// SetContext sets the Context field's value. +func (s *AddressConfiguration) SetContext(v map[string]*string) *AddressConfiguration { + s.Context = v + return s +} + +// SetRawContent sets the RawContent field's value. +func (s *AddressConfiguration) SetRawContent(v string) *AddressConfiguration { + s.RawContent = &v + return s +} + +// SetSubstitutions sets the Substitutions field's value. +func (s *AddressConfiguration) SetSubstitutions(v map[string][]*string) *AddressConfiguration { + s.Substitutions = v + return s +} + +// SetTitleOverride sets the TitleOverride field's value. +func (s *AddressConfiguration) SetTitleOverride(v string) *AddressConfiguration { + s.TitleOverride = &v + return s +} + +// Application Response. +type ApplicationResponse struct { + _ struct{} `type:"structure"` + + // The unique application ID. + Id *string `type:"string"` + + // The display name of the application. + Name *string `type:"string"` +} + +// String returns the string representation +func (s ApplicationResponse) String() string { + return awsutil.Prettify(s) } -// SetRawContent sets the RawContent field's value. -func (s *AddressConfiguration) SetRawContent(v string) *AddressConfiguration { - s.RawContent = &v - return s +// GoString returns the string representation +func (s ApplicationResponse) GoString() string { + return s.String() } -// SetSubstitutions sets the Substitutions field's value. -func (s *AddressConfiguration) SetSubstitutions(v map[string][]*string) *AddressConfiguration { - s.Substitutions = v +// SetId sets the Id field's value. +func (s *ApplicationResponse) SetId(v string) *ApplicationResponse { + s.Id = &v return s } -// SetTitleOverride sets the TitleOverride field's value. -func (s *AddressConfiguration) SetTitleOverride(v string) *AddressConfiguration { - s.TitleOverride = &v +// SetName sets the Name field's value. +func (s *ApplicationResponse) SetName(v string) *ApplicationResponse { + s.Name = &v return s } @@ -4412,6 +4789,40 @@ func (s *ApplicationSettingsResource) SetQuietTime(v *QuietTime) *ApplicationSet return s } +// Get Applications Result. +type ApplicationsResponse struct { + _ struct{} `type:"structure"` + + // List of applications returned in this page. + Item []*ApplicationResponse `type:"list"` + + // The string that you use in a subsequent request to get the next page of results + // in a paginated response. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ApplicationsResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ApplicationsResponse) GoString() string { + return s.String() +} + +// SetItem sets the Item field's value. +func (s *ApplicationsResponse) SetItem(v []*ApplicationResponse) *ApplicationsResponse { + s.Item = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ApplicationsResponse) SetNextToken(v string) *ApplicationsResponse { + s.NextToken = &v + return s +} + // Custom attibute dimension type AttributeDimension struct { _ struct{} `type:"structure"` @@ -4453,6 +4864,10 @@ type CampaignEmailMessage struct { // The email text body. Body *string `type:"string"` + // The email address used to send the email from. Defaults to use FromAddress + // specified in the Email Channel. + FromAddress *string `type:"string"` + // The email html body. HtmlBody *string `type:"string"` @@ -4476,6 +4891,12 @@ func (s *CampaignEmailMessage) SetBody(v string) *CampaignEmailMessage { return s } +// SetFromAddress sets the FromAddress field's value. +func (s *CampaignEmailMessage) SetFromAddress(v string) *CampaignEmailMessage { + s.FromAddress = &v + return s +} + // SetHtmlBody sets the HtmlBody field's value. func (s *CampaignEmailMessage) SetHtmlBody(v string) *CampaignEmailMessage { s.HtmlBody = &v @@ -4814,6 +5235,93 @@ func (s *CampaignsResponse) SetNextToken(v string) *CampaignsResponse { return s } +type CreateAppInput struct { + _ struct{} `type:"structure" payload:"CreateApplicationRequest"` + + // Application Request. + // + // CreateApplicationRequest is a required field + CreateApplicationRequest *CreateApplicationRequest `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateAppInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAppInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAppInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAppInput"} + if s.CreateApplicationRequest == nil { + invalidParams.Add(request.NewErrParamRequired("CreateApplicationRequest")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCreateApplicationRequest sets the CreateApplicationRequest field's value. +func (s *CreateAppInput) SetCreateApplicationRequest(v *CreateApplicationRequest) *CreateAppInput { + s.CreateApplicationRequest = v + return s +} + +type CreateAppOutput struct { + _ struct{} `type:"structure" payload:"ApplicationResponse"` + + // Application Response. + // + // ApplicationResponse is a required field + ApplicationResponse *ApplicationResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateAppOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAppOutput) GoString() string { + return s.String() +} + +// SetApplicationResponse sets the ApplicationResponse field's value. +func (s *CreateAppOutput) SetApplicationResponse(v *ApplicationResponse) *CreateAppOutput { + s.ApplicationResponse = v + return s +} + +// Application Request. +type CreateApplicationRequest struct { + _ struct{} `type:"structure"` + + // The display name of the application. Used in the Amazon Pinpoint console. + Name *string `type:"string"` +} + +// String returns the string representation +func (s CreateApplicationRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateApplicationRequest) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *CreateApplicationRequest) SetName(v string) *CreateApplicationRequest { + s.Name = &v + return s +} + type CreateCampaignInput struct { _ struct{} `type:"structure" payload:"WriteCampaignRequest"` @@ -5273,6 +5781,67 @@ func (s *DeleteApnsSandboxChannelOutput) SetAPNSSandboxChannelResponse(v *APNSSa return s } +type DeleteAppInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAppInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAppInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAppInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAppInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteAppInput) SetApplicationId(v string) *DeleteAppInput { + s.ApplicationId = &v + return s +} + +type DeleteAppOutput struct { + _ struct{} `type:"structure" payload:"ApplicationResponse"` + + // Application Response. + // + // ApplicationResponse is a required field + ApplicationResponse *ApplicationResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s DeleteAppOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAppOutput) GoString() string { + return s.String() +} + +// SetApplicationResponse sets the ApplicationResponse field's value. +func (s *DeleteAppOutput) SetApplicationResponse(v *ApplicationResponse) *DeleteAppOutput { + s.ApplicationResponse = v + return s +} + type DeleteCampaignInput struct { _ struct{} `type:"structure"` @@ -5781,7 +6350,7 @@ func (s *EmailChannelRequest) SetRoleArn(v string) *EmailChannelRequest { type EmailChannelResponse struct { _ struct{} `type:"structure"` - // Application id + // The unique ID of the application to which the email channel belongs. ApplicationId *string `type:"string"` // The date that the settings were last updated in ISO 8601 format. @@ -5911,7 +6480,7 @@ type EndpointBatchItem struct { Attributes map[string][]*string `type:"map"` - // The channel type.Valid values: APNS, GCM + // The channel type.Valid values: GCM | APNS | SMS | EMAIL ChannelType *string `type:"string" enum:"ChannelType"` // The endpoint demographic attributes. @@ -5933,8 +6502,8 @@ type EndpointBatchItem struct { Metrics map[string]*float64 `type:"map"` // Indicates whether a user has opted out of receiving messages with one of - // the following values:ALL – User receives all messages.NONE – User receives - // no messages. + // the following values:ALL - User has opted out of all messages.NONE - Users + // has not opted out and receives all messages. OptOut *string `type:"string"` // The unique ID for the most recent request to update the endpoint. @@ -6220,7 +6789,7 @@ type EndpointRequest struct { Attributes map[string][]*string `type:"map"` - // The channel type.Valid values: APNS, GCM + // The channel type.Valid values: GCM | APNS | SMS | EMAIL ChannelType *string `type:"string" enum:"ChannelType"` // The endpoint demographic attributes. @@ -6239,8 +6808,8 @@ type EndpointRequest struct { Metrics map[string]*float64 `type:"map"` // Indicates whether a user has opted out of receiving messages with one of - // the following values:ALL – User receives all messages.NONE – User receives - // no messages. + // the following values:ALL - User has opted out of all messages.NONE - Users + // has not opted out and receives all messages. OptOut *string `type:"string"` // The unique ID for the most recent request to update the endpoint. @@ -6339,7 +6908,7 @@ type EndpointResponse struct { Attributes map[string][]*string `type:"map"` - // The channel type.Valid values: APNS, GCM + // The channel type.Valid values: GCM | APNS | SMS | EMAIL ChannelType *string `type:"string" enum:"ChannelType"` // A number from 0 - 99 that represents the cohort the endpoint is assigned @@ -6372,8 +6941,8 @@ type EndpointResponse struct { Metrics map[string]*float64 `type:"map"` // Indicates whether a user has opted out of receiving messages with one of - // the following values:ALL – User receives all messages.NONE – User receives - // no messages. + // the following values:ALL - User has opted out of all messages.NONE - Users + // has not opted out and receives all messages. OptOut *string `type:"string"` // The unique ID for the most recent request to update the endpoint. @@ -6645,7 +7214,7 @@ type GCMChannelResponse struct { // If the channel is enabled for sending messages. Enabled *bool `type:"boolean"` - // Channel ID. Not used, only for backwards compatibility. + // Channel ID. Not used. Present only for backwards compatibility. Id *string `type:"string"` // Is this channel archived @@ -7022,6 +7591,67 @@ func (s *GetApnsSandboxChannelOutput) SetAPNSSandboxChannelResponse(v *APNSSandb return s } +type GetAppInput struct { + _ struct{} `type:"structure"` + + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"application-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAppInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAppInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAppInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAppInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetAppInput) SetApplicationId(v string) *GetAppInput { + s.ApplicationId = &v + return s +} + +type GetAppOutput struct { + _ struct{} `type:"structure" payload:"ApplicationResponse"` + + // Application Response. + // + // ApplicationResponse is a required field + ApplicationResponse *ApplicationResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetAppOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAppOutput) GoString() string { + return s.String() +} + +// SetApplicationResponse sets the ApplicationResponse field's value. +func (s *GetAppOutput) SetApplicationResponse(v *ApplicationResponse) *GetAppOutput { + s.ApplicationResponse = v + return s +} + type GetApplicationSettingsInput struct { _ struct{} `type:"structure"` @@ -7083,6 +7713,61 @@ func (s *GetApplicationSettingsOutput) SetApplicationSettingsResource(v *Applica return s } +type GetAppsInput struct { + _ struct{} `type:"structure"` + + PageSize *string `location:"querystring" locationName:"page-size" type:"string"` + + Token *string `location:"querystring" locationName:"token" type:"string"` +} + +// String returns the string representation +func (s GetAppsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAppsInput) GoString() string { + return s.String() +} + +// SetPageSize sets the PageSize field's value. +func (s *GetAppsInput) SetPageSize(v string) *GetAppsInput { + s.PageSize = &v + return s +} + +// SetToken sets the Token field's value. +func (s *GetAppsInput) SetToken(v string) *GetAppsInput { + s.Token = &v + return s +} + +type GetAppsOutput struct { + _ struct{} `type:"structure" payload:"ApplicationsResponse"` + + // Get Applications Result. + // + // ApplicationsResponse is a required field + ApplicationsResponse *ApplicationsResponse `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetAppsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAppsOutput) GoString() string { + return s.String() +} + +// SetApplicationsResponse sets the ApplicationsResponse field's value. +func (s *GetAppsOutput) SetApplicationsResponse(v *ApplicationsResponse) *GetAppsOutput { + s.ApplicationsResponse = v + return s +} + type GetCampaignActivitiesInput struct { _ struct{} `type:"structure"` @@ -8766,6 +9451,10 @@ type Message struct { // The URL that points to the media resource, for example a .mp4 or .gif file. MediaUrl *string `type:"string"` + // The Raw JSON formatted string to be used as the payload. This value overrides + // the message. + RawContent *string `type:"string"` + // Indicates if the message should display on the users device.Silent pushes // can be used for Remote Configuration and Phone Home use cases. SilentPush *bool `type:"boolean"` @@ -8830,6 +9519,12 @@ func (s *Message) SetMediaUrl(v string) *Message { return s } +// SetRawContent sets the RawContent field's value. +func (s *Message) SetRawContent(v string) *Message { + s.RawContent = &v + return s +} + // SetSilentPush sets the SilentPush field's value. func (s *Message) SetSilentPush(v bool) *Message { s.SilentPush = &v @@ -9263,7 +9958,7 @@ func (s *SMSChannelRequest) SetSenderId(v string) *SMSChannelRequest { type SMSChannelResponse struct { _ struct{} `type:"structure"` - // Application id + // The unique ID of the application to which the SMS channel belongs. ApplicationId *string `type:"string"` // The date that the settings were last updated in ISO 8601 format. diff --git a/service/pinpoint/doc.go b/service/pinpoint/doc.go index d9bccd86f37..ea6f9d111dc 100644 --- a/service/pinpoint/doc.go +++ b/service/pinpoint/doc.go @@ -46,7 +46,7 @@ // by the operation if the service models the API operation's errors. These // errors will also be available as const strings prefixed with "ErrCode". // -// result, err := svc.CreateCampaign(params) +// result, err := svc.CreateApp(params) // if err != nil { // // Cast err to awserr.Error to handle specific error codes. // aerr, ok := err.(awserr.Error) @@ -56,7 +56,7 @@ // return err // } // -// fmt.Println("CreateCampaign result:") +// fmt.Println("CreateApp result:") // fmt.Println(result) // // Using the Client with Context @@ -68,7 +68,7 @@ // // ctx := context.Background() // -// result, err := svc.CreateCampaignWithContext(ctx, params) +// result, err := svc.CreateAppWithContext(ctx, params) // // See the request package documentation for more information on using Context pattern // with the SDK. diff --git a/service/pinpoint/pinpointiface/interface.go b/service/pinpoint/pinpointiface/interface.go index 829e5a81f89..65625307a58 100644 --- a/service/pinpoint/pinpointiface/interface.go +++ b/service/pinpoint/pinpointiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Pinpoint. // func myFunc(svc pinpointiface.PinpointAPI) bool { -// // Make svc.CreateCampaign request +// // Make svc.CreateApp request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockPinpointClient struct { // pinpointiface.PinpointAPI // } -// func (m *mockPinpointClient) CreateCampaign(input *pinpoint.CreateCampaignInput) (*pinpoint.CreateCampaignOutput, error) { +// func (m *mockPinpointClient) CreateApp(input *pinpoint.CreateAppInput) (*pinpoint.CreateAppOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type PinpointAPI interface { + CreateApp(*pinpoint.CreateAppInput) (*pinpoint.CreateAppOutput, error) + CreateAppWithContext(aws.Context, *pinpoint.CreateAppInput, ...request.Option) (*pinpoint.CreateAppOutput, error) + CreateAppRequest(*pinpoint.CreateAppInput) (*request.Request, *pinpoint.CreateAppOutput) + CreateCampaign(*pinpoint.CreateCampaignInput) (*pinpoint.CreateCampaignOutput, error) CreateCampaignWithContext(aws.Context, *pinpoint.CreateCampaignInput, ...request.Option) (*pinpoint.CreateCampaignOutput, error) CreateCampaignRequest(*pinpoint.CreateCampaignInput) (*request.Request, *pinpoint.CreateCampaignOutput) @@ -80,6 +84,10 @@ type PinpointAPI interface { DeleteApnsSandboxChannelWithContext(aws.Context, *pinpoint.DeleteApnsSandboxChannelInput, ...request.Option) (*pinpoint.DeleteApnsSandboxChannelOutput, error) DeleteApnsSandboxChannelRequest(*pinpoint.DeleteApnsSandboxChannelInput) (*request.Request, *pinpoint.DeleteApnsSandboxChannelOutput) + DeleteApp(*pinpoint.DeleteAppInput) (*pinpoint.DeleteAppOutput, error) + DeleteAppWithContext(aws.Context, *pinpoint.DeleteAppInput, ...request.Option) (*pinpoint.DeleteAppOutput, error) + DeleteAppRequest(*pinpoint.DeleteAppInput) (*request.Request, *pinpoint.DeleteAppOutput) + DeleteCampaign(*pinpoint.DeleteCampaignInput) (*pinpoint.DeleteCampaignOutput, error) DeleteCampaignWithContext(aws.Context, *pinpoint.DeleteCampaignInput, ...request.Option) (*pinpoint.DeleteCampaignOutput, error) DeleteCampaignRequest(*pinpoint.DeleteCampaignInput) (*request.Request, *pinpoint.DeleteCampaignOutput) @@ -112,10 +120,18 @@ type PinpointAPI interface { GetApnsSandboxChannelWithContext(aws.Context, *pinpoint.GetApnsSandboxChannelInput, ...request.Option) (*pinpoint.GetApnsSandboxChannelOutput, error) GetApnsSandboxChannelRequest(*pinpoint.GetApnsSandboxChannelInput) (*request.Request, *pinpoint.GetApnsSandboxChannelOutput) + GetApp(*pinpoint.GetAppInput) (*pinpoint.GetAppOutput, error) + GetAppWithContext(aws.Context, *pinpoint.GetAppInput, ...request.Option) (*pinpoint.GetAppOutput, error) + GetAppRequest(*pinpoint.GetAppInput) (*request.Request, *pinpoint.GetAppOutput) + GetApplicationSettings(*pinpoint.GetApplicationSettingsInput) (*pinpoint.GetApplicationSettingsOutput, error) GetApplicationSettingsWithContext(aws.Context, *pinpoint.GetApplicationSettingsInput, ...request.Option) (*pinpoint.GetApplicationSettingsOutput, error) GetApplicationSettingsRequest(*pinpoint.GetApplicationSettingsInput) (*request.Request, *pinpoint.GetApplicationSettingsOutput) + GetApps(*pinpoint.GetAppsInput) (*pinpoint.GetAppsOutput, error) + GetAppsWithContext(aws.Context, *pinpoint.GetAppsInput, ...request.Option) (*pinpoint.GetAppsOutput, error) + GetAppsRequest(*pinpoint.GetAppsInput) (*request.Request, *pinpoint.GetAppsOutput) + GetCampaign(*pinpoint.GetCampaignInput) (*pinpoint.GetCampaignOutput, error) GetCampaignWithContext(aws.Context, *pinpoint.GetCampaignInput, ...request.Option) (*pinpoint.GetCampaignOutput, error) GetCampaignRequest(*pinpoint.GetCampaignInput) (*request.Request, *pinpoint.GetCampaignOutput) diff --git a/service/ses/api.go b/service/ses/api.go index 80e738ddce6..43412b585e0 100644 --- a/service/ses/api.go +++ b/service/ses/api.go @@ -249,8 +249,8 @@ func (c *SES) CreateConfigurationSetEventDestinationRequest(input *CreateConfigu // Creates a configuration set event destination. // // When you create or update an event destination, you must provide one, and -// only one, destination. The destination can be either Amazon CloudWatch or -// Amazon Kinesis Firehose. +// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis +// Firehose, or Amazon Simple Notification Service (Amazon SNS). // // An event destination is the AWS service to which Amazon SES publishes the // email sending events associated with a configuration set. For information @@ -281,6 +281,10 @@ func (c *SES) CreateConfigurationSetEventDestinationRequest(input *CreateConfigu // Indicates that the Amazon Kinesis Firehose destination is invalid. See the // error message for details. // +// * ErrCodeInvalidSNSDestinationException "InvalidSNSDestination" +// Indicates that the Amazon Simple Notification Service (Amazon SNS) destination +// is invalid. See the error message for details. +// // * ErrCodeLimitExceededException "LimitExceeded" // Indicates that a resource could not be created because of service limits. // For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html). @@ -2001,6 +2005,22 @@ func (c *SES) GetIdentityVerificationAttributesRequest(input *GetIdentityVerific // verification status and (for domain identities) the verification token for // each identity. // +// The verification status of an email address is "Pending" until the email +// address owner clicks the link within the verification email that Amazon SES +// sent to that address. If the email address owner clicks the link within 24 +// hours, the verification status of the email address changes to "Success". +// If the link is not clicked within 24 hours, the verification status changes +// to "Failed." In that case, if you still want to verify the email address, +// you must restart the verification process from the beginning. +// +// For domain identities, the domain's verification status is "Pending" as Amazon +// SES searches for the required TXT record in the DNS settings of the domain. +// When Amazon SES detects the record, the domain's verification status changes +// to "Success". If Amazon SES is unable to detect the record within 72 hours, +// the domain's verification status changes to "Failed." In that case, if you +// still want to verify the domain, you must restart the verification process +// from the beginning. +// // This action is throttled at one request per second and can only get verification // attributes for up to 100 identities at a time. // @@ -3067,6 +3087,10 @@ func (c *SES) SendEmailRequest(input *SendEmailInput) (req *request.Request, out // * The total size of the message cannot exceed 10 MB. This includes any // attachments that are part of the message. // +// * You must provide at least one recipient email address. The recipient +// address can be a To: address, a CC: address, or a BCC: address. If any +// email address you provide is invalid, Amazon SES rejects the entire email. +// // * Amazon SES has a limit on the total number of recipients per message. // The combined number of To:, CC: and BCC: email addresses cannot exceed // 50. If you need to send an email message to a larger audience, you can @@ -3183,6 +3207,10 @@ func (c *SES) SendRawEmailRequest(input *SendRawEmailInput) (req *request.Reques // * The total size of the message cannot exceed 10 MB. This includes any // attachments that are part of the message. // +// * You must provide at least one recipient email address. The recipient +// address can be a To: address, a CC: address, or a BCC: address. If any +// email address you provide is invalid, Amazon SES rejects the entire email. +// // * Amazon SES has a limit on the total number of recipients per message. // The combined number of To:, CC: and BCC: email addresses cannot exceed // 50. If you need to send an email message to a larger audience, you can @@ -3919,13 +3947,13 @@ func (c *SES) UpdateConfigurationSetEventDestinationRequest(input *UpdateConfigu // Updates the event destination of a configuration set. // // When you create or update an event destination, you must provide one, and -// only one, destination. The destination can be either Amazon CloudWatch or -// Amazon Kinesis Firehose. +// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis +// Firehose, or Amazon Simple Notification Service (Amazon SNS). // // Event destinations are associated with configuration sets, which enable you -// to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. -// For information about using configuration sets, see the Amazon SES Developer -// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). +// to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, +// or Amazon Simple Notification Service (Amazon SNS). For information about +// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). // // This action is throttled at one request per second. // @@ -3951,6 +3979,10 @@ func (c *SES) UpdateConfigurationSetEventDestinationRequest(input *UpdateConfigu // Indicates that the Amazon Kinesis Firehose destination is invalid. See the // error message for details. // +// * ErrCodeInvalidSNSDestinationException "InvalidSNSDestination" +// Indicates that the Amazon Simple Notification Service (Amazon SNS) destination +// is invalid. See the error message for details. +// // Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestination func (c *SES) UpdateConfigurationSetEventDestination(input *UpdateConfigurationSetEventDestinationInput) (*UpdateConfigurationSetEventDestinationOutput, error) { req, out := c.UpdateConfigurationSetEventDestinationRequest(input) @@ -6258,13 +6290,13 @@ func (s *Destination) SetToAddresses(v []*string) *Destination { // sending events are published. // // When you create or update an event destination, you must provide one, and -// only one, destination. The destination can be either Amazon CloudWatch or -// Amazon Kinesis Firehose. +// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis +// Firehose or Amazon Simple Notification Service (Amazon SNS). // // Event destinations are associated with configuration sets, which enable you -// to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. -// For information about using configuration sets, see the Amazon SES Developer -// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). +// to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, +// or Amazon Simple Notification Service (Amazon SNS). For information about +// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). // Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/EventDestination type EventDestination struct { _ struct{} `type:"structure"` @@ -6297,6 +6329,10 @@ type EventDestination struct { // // Name is a required field Name *string `type:"string" required:"true"` + + // An object that contains the topic ARN associated with an Amazon Simple Notification + // Service (Amazon SNS) event destination. + SNSDestination *SNSDestination `type:"structure"` } // String returns the string representation @@ -6328,6 +6364,11 @@ func (s *EventDestination) Validate() error { invalidParams.AddNested("KinesisFirehoseDestination", err.(request.ErrInvalidParams)) } } + if s.SNSDestination != nil { + if err := s.SNSDestination.Validate(); err != nil { + invalidParams.AddNested("SNSDestination", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -6365,6 +6406,12 @@ func (s *EventDestination) SetName(v string) *EventDestination { return s } +// SetSNSDestination sets the SNSDestination field's value. +func (s *EventDestination) SetSNSDestination(v *SNSDestination) *EventDestination { + s.SNSDestination = v + return s +} + // Additional X-headers to include in the Delivery Status Notification (DSN) // when an email that Amazon SES receives on your behalf bounces. // @@ -8013,9 +8060,12 @@ func (s PutIdentityPolicyOutput) GoString() string { type RawMessage struct { _ struct{} `type:"structure"` - // The raw data of the message. The client must ensure that the message format - // complies with Internet email standards regarding email header fields, MIME - // types, MIME encoding, and base64 encoding. + // The raw data of the message. This data needs to base64-encoded if you are + // accessing Amazon SES directly through the HTTPS interface. If you are accessing + // Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for + // you. In all cases, the client must ensure that the message format complies + // with Internet email standards regarding email header fields, MIME types, + // and MIME encoding. // // The To:, CC:, and BCC: headers in the raw message can contain a group list. // @@ -8883,6 +8933,54 @@ func (s *SNSAction) SetTopicArn(v string) *SNSAction { return s } +// Contains the topic ARN associated with an Amazon Simple Notification Service +// (Amazon SNS) event destination. +// +// Event destinations, such as Amazon SNS, are associated with configuration +// sets, which enable you to publish email sending events. For information about +// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). +// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SNSDestination +type SNSDestination struct { + _ struct{} `type:"structure"` + + // The ARN of the Amazon SNS topic to which you want to publish email sending + // events. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. + // For more information about Amazon SNS topics, see the Amazon SNS Developer + // Guide (http://docs.aws.amazon.com/http:/alpha-docs-aws.amazon.com/sns/latest/dg/CreateTopic.html). + // + // TopicARN is a required field + TopicARN *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s SNSDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SNSDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SNSDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SNSDestination"} + if s.TopicARN == nil { + invalidParams.Add(request.NewErrParamRequired("TopicARN")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTopicARN sets the TopicARN field's value. +func (s *SNSDestination) SetTopicARN(v string) *SNSDestination { + s.TopicARN = &v + return s +} + // Represents a request to send a bounce message to the sender of an email you // received through Amazon SES. // Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounceRequest @@ -9336,6 +9434,10 @@ type SendRawEmailInput struct { // // * Must be base64-encoded. // + // * Per RFC 5321 (https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6), + // the maximum length of each line of text, including the , must not + // exceed 1,000 characters. + // // RawMessage is a required field RawMessage *RawMessage `type:"structure" required:"true"` @@ -10396,8 +10498,15 @@ func (s *VerifyDomainIdentityInput) SetDomain(v string) *VerifyDomainIdentityInp type VerifyDomainIdentityOutput struct { _ struct{} `type:"structure"` - // A TXT record that must be placed in the DNS settings for the domain, in order - // to complete domain verification. + // A TXT record that you must place in the DNS settings of the domain to complete + // domain verification with Amazon SES. + // + // As Amazon SES searches for the TXT record, the domain's verification status + // is "Pending". When Amazon SES detects the record, the domain's verification + // status changes to "Success". If Amazon SES is unable to detect the record + // within 72 hours, the domain's verification status changes to "Failed." In + // that case, if you still want to verify the domain, you must restart the verification + // process from the beginning. // // VerificationToken is a required field VerificationToken *string `type:"string" required:"true"` @@ -10648,6 +10757,9 @@ const ( // DimensionValueSourceEmailHeader is a DimensionValueSource enum value DimensionValueSourceEmailHeader = "emailHeader" + + // DimensionValueSourceLinkTag is a DimensionValueSource enum value + DimensionValueSourceLinkTag = "linkTag" ) const ( @@ -10682,6 +10794,12 @@ const ( // EventTypeDelivery is a EventType enum value EventTypeDelivery = "delivery" + + // EventTypeOpen is a EventType enum value + EventTypeOpen = "open" + + // EventTypeClick is a EventType enum value + EventTypeClick = "click" ) const ( diff --git a/service/ses/errors.go b/service/ses/errors.go index ef5f15819ad..3b18e9fdda3 100644 --- a/service/ses/errors.go +++ b/service/ses/errors.go @@ -88,6 +88,13 @@ const ( // Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html). ErrCodeInvalidS3ConfigurationException = "InvalidS3Configuration" + // ErrCodeInvalidSNSDestinationException for service response error code + // "InvalidSNSDestination". + // + // Indicates that the Amazon Simple Notification Service (Amazon SNS) destination + // is invalid. See the error message for details. + ErrCodeInvalidSNSDestinationException = "InvalidSNSDestination" + // ErrCodeInvalidSnsTopicException for service response error code // "InvalidSnsTopic". //