diff --git a/Package.swift b/Package.swift index 0f1adf83a30..a9095000717 100644 --- a/Package.swift +++ b/Package.swift @@ -255,7 +255,7 @@ func addResolvedTargets() { // MARK: - Generated addDependencies( - clientRuntimeVersion: "0.74.0", + clientRuntimeVersion: "0.75.0", crtVersion: "0.36.0" ) diff --git a/Package.version b/Package.version index a6a3a43c3a0..1464c521f9e 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -1.0.4 \ No newline at end of file +1.0.5 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 1464c521f9e..ece61c60124 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -1.0.5 \ No newline at end of file +1.0.6 \ No newline at end of file diff --git a/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift b/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift index 1a9154114ee..c0cd9cdcf93 100644 --- a/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift +++ b/Sources/Services/AWSBedrock/Sources/AWSBedrock/Models.swift @@ -549,12 +549,12 @@ extension BedrockClientTypes { } extension BedrockClientTypes { - /// Contains the ARN of the Amazon Bedrock models specified in your model evaluation job. Each Amazon Bedrock model supports different inferenceParams. To learn more about supported inference parameters for Amazon Bedrock models, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). The inferenceParams are specified using JSON. To successfully insert JSON as string make sure that all quotations are properly escaped. For example, "temperature":"0.25" key value pair would need to be formatted as \"temperature\":\"0.25\" to successfully accepted in the request. + /// Contains the ARN of the Amazon Bedrock model or [inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) specified in your model evaluation job. Each Amazon Bedrock model supports different inferenceParams. To learn more about supported inference parameters for Amazon Bedrock models, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). The inferenceParams are specified using JSON. To successfully insert JSON as string make sure that all quotations are properly escaped. For example, "temperature":"0.25" key value pair would need to be formatted as \"temperature\":\"0.25\" to successfully accepted in the request. public struct EvaluationBedrockModel { /// Each Amazon Bedrock support different inference parameters that change how the model behaves during inference. /// This member is required. public var inferenceParams: Swift.String? - /// The ARN of the Amazon Bedrock model specified. + /// The ARN of the Amazon Bedrock model or inference profile specified. /// This member is required. public var modelIdentifier: Swift.String? @@ -578,7 +578,7 @@ extension BedrockClientTypes.EvaluationBedrockModel: Swift.CustomDebugStringConv extension BedrockClientTypes { /// Defines the models used in the model evaluation job. public enum EvaluationModelConfig { - /// Defines the Amazon Bedrock model and inference parameters you want used. + /// Defines the Amazon Bedrock model or inference profile and inference parameters you want used. case bedrockmodel(BedrockClientTypes.EvaluationBedrockModel) case sdkUnknown(Swift.String) } @@ -642,7 +642,7 @@ public struct CreateEvaluationJobInput { /// Specifies whether the model evaluation job is automatic or uses human worker. /// This member is required. public var evaluationConfig: BedrockClientTypes.EvaluationConfig? - /// Specify the models you want to use in your model evaluation job. Automatic model evaluation jobs support a single model, and model evaluation job that use human workers support two models. + /// Specify the models you want to use in your model evaluation job. Automatic model evaluation jobs support a single model or [inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html), and model evaluation job that use human workers support two models or inference profiles. /// This member is required. public var inferenceConfig: BedrockClientTypes.EvaluationInferenceConfig? /// A description of the model evaluation job. diff --git a/Sources/Services/AWSBudgets/Sources/AWSBudgets/Endpoints.swift b/Sources/Services/AWSBudgets/Sources/AWSBudgets/Endpoints.swift index 29d33155111..b9019240cdb 100644 --- a/Sources/Services/AWSBudgets/Sources/AWSBudgets/Endpoints.swift +++ b/Sources/Services/AWSBudgets/Sources/AWSBudgets/Endpoints.swift @@ -59,7 +59,7 @@ public protocol EndpointResolver { typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver extension DefaultEndpointResolver { - private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}]}" + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-e\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.global.cloud.adc-e.uk\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"eu-isoe-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-f\"]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://budgets.global.csp.hci.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-isof-south-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}]}" init() throws { try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) diff --git a/Sources/Services/AWSBudgets/Tests/AWSBudgetsTests/EndpointResolverTest.swift b/Sources/Services/AWSBudgets/Tests/AWSBudgetsTests/EndpointResolverTest.swift index fc145a9107e..c6e7d274b7a 100644 --- a/Sources/Services/AWSBudgets/Tests/AWSBudgetsTests/EndpointResolverTest.swift +++ b/Sources/Services/AWSBudgets/Tests/AWSBudgetsTests/EndpointResolverTest.swift @@ -488,8 +488,64 @@ class EndpointResolverTest: XCTestCase { XCTAssertEqual(expected, actual) } - /// For custom endpoint with region set and fips disabled and dualstack disabled + /// For region eu-isoe-west-1 with FIPS disabled and DualStack disabled func testResolve23() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "eu-isoe-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://budgets.global.cloud.adc-e.uk", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS disabled and DualStack disabled + func testResolve24() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-isof-south-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://budgets.global.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with region set and fips disabled and dualstack disabled + func testResolve25() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -510,7 +566,7 @@ class EndpointResolverTest: XCTestCase { } /// For custom endpoint with region not set and fips disabled and dualstack disabled - func testResolve24() throws { + func testResolve26() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", useDualStack: false, @@ -530,7 +586,7 @@ class EndpointResolverTest: XCTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve25() throws { + func testResolve27() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -550,7 +606,7 @@ class EndpointResolverTest: XCTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve26() throws { + func testResolve28() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -570,7 +626,7 @@ class EndpointResolverTest: XCTestCase { } /// Missing region - func testResolve27() throws { + func testResolve29() throws { let endpointParams = EndpointParams( ) let resolver = try DefaultEndpointResolver() diff --git a/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift b/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift index 02717941cbc..911d54622f2 100644 --- a/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift +++ b/Sources/Services/AWSKinesis/Sources/AWSKinesis/KinesisClient.swift @@ -277,7 +277,7 @@ extension KinesisClient { /// * Create more shards than are authorized for your account. /// /// - /// For the default shard limit for an Amazon Web Services account, see [Amazon Kinesis Data Streams Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) in the Amazon Kinesis Data Streams Developer Guide. To increase this limit, [contact Amazon Web Services Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). You can use [DescribeStreamSummary] to check the stream status, which is returned in StreamStatus. [CreateStream] has a limit of five transactions per second per account. + /// For the default shard limit for an Amazon Web Services account, see [Amazon Kinesis Data Streams Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) in the Amazon Kinesis Data Streams Developer Guide. To increase this limit, [contact Amazon Web Services Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). You can use [DescribeStreamSummary] to check the stream status, which is returned in StreamStatus. [CreateStream] has a limit of five transactions per second per account. You can add tags to the stream when making a CreateStream request by setting the Tags parameter. If you pass Tags parameter, in addition to having kinesis:createStream permission, you must also have kinesis:addTagsToStream permission for the stream that will be created. Tags will take effect from the CREATING status of the stream. /// /// - Parameter CreateStreamInput : Represents the input for CreateStream. /// @@ -1179,6 +1179,7 @@ extension KinesisClient { /// - `AccessDeniedException` : Specifies that you do not have the permissions required to perform this operation. /// - `InvalidArgumentException` : A specified parameter exceeds its restrictions, is not supported, or can't be used. For more information, see the returned message. /// - `LimitExceededException` : The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed. + /// - `ResourceInUseException` : The resource is not available for this operation. For successful operation, the resource must be in the ACTIVE state. /// - `ResourceNotFoundException` : The requested resource could not be found. The stream might not be specified correctly. public func getResourcePolicy(input: GetResourcePolicyInput) async throws -> GetResourcePolicyOutput { let context = Smithy.ContextBuilder() @@ -1995,7 +1996,7 @@ extension KinesisClient { /// Performs the `RegisterStreamConsumer` operation on the `Kinesis_20131202` service. /// - /// Registers a consumer with a Kinesis data stream. When you use this operation, the consumer you register can then call [SubscribeToShard] to receive data from the stream using enhanced fan-out, at a rate of up to 2 MiB per second for every shard you subscribe to. This rate is unaffected by the total number of consumers that read from the same stream. You can register up to 20 consumers per stream. A given consumer can only be registered with one stream at a time. For an example of how to use this operations, see [Enhanced Fan-Out Using the Kinesis Data Streams API]. The use of this operation has a limit of five transactions per second per account. Also, only 5 consumers can be created simultaneously. In other words, you cannot have more than 5 consumers in a CREATING status at the same time. Registering a 6th consumer while there are 5 in a CREATING status results in a LimitExceededException. + /// Registers a consumer with a Kinesis data stream. When you use this operation, the consumer you register can then call [SubscribeToShard] to receive data from the stream using enhanced fan-out, at a rate of up to 2 MiB per second for every shard you subscribe to. This rate is unaffected by the total number of consumers that read from the same stream. You can register up to 20 consumers per stream. A given consumer can only be registered with one stream at a time. For an example of how to use this operation, see [Enhanced Fan-Out Using the Kinesis Data Streams API](https://docs.aws.amazon.com/streams/latest/dev/building-enhanced-consumers-api.html). The use of this operation has a limit of five transactions per second per account. Also, only 5 consumers can be created simultaneously. In other words, you cannot have more than 5 consumers in a CREATING status at the same time. Registering a 6th consumer while there are 5 in a CREATING status results in a LimitExceededException. /// /// - Parameter RegisterStreamConsumerInput : [no documentation found] /// @@ -2371,7 +2372,7 @@ extension KinesisClient { /// Performs the `SubscribeToShard` operation on the `Kinesis_20131202` service. /// - /// This operation establishes an HTTP/2 connection between the consumer you specify in the ConsumerARN parameter and the shard you specify in the ShardId parameter. After the connection is successfully established, Kinesis Data Streams pushes records from the shard to the consumer over this connection. Before you call this operation, call [RegisterStreamConsumer] to register the consumer with Kinesis Data Streams. When the SubscribeToShard call succeeds, your consumer starts receiving events of type [SubscribeToShardEvent] over the HTTP/2 connection for up to 5 minutes, after which time you need to call SubscribeToShard again to renew the subscription if you want to continue to receive records. You can make one call to SubscribeToShard per second per registered consumer per shard. For example, if you have a 4000 shard stream and two registered stream consumers, you can make one SubscribeToShard request per second for each combination of shard and registered consumer, allowing you to subscribe both consumers to all 4000 shards in one second. If you call SubscribeToShard again with the same ConsumerARN and ShardId within 5 seconds of a successful call, you'll get a ResourceInUseException. If you call SubscribeToShard 5 seconds or more after a successful call, the second call takes over the subscription and the previous connection expires or fails with a ResourceInUseException. For an example of how to use this operations, see [Enhanced Fan-Out Using the Kinesis Data Streams API]. + /// This operation establishes an HTTP/2 connection between the consumer you specify in the ConsumerARN parameter and the shard you specify in the ShardId parameter. After the connection is successfully established, Kinesis Data Streams pushes records from the shard to the consumer over this connection. Before you call this operation, call [RegisterStreamConsumer] to register the consumer with Kinesis Data Streams. When the SubscribeToShard call succeeds, your consumer starts receiving events of type [SubscribeToShardEvent] over the HTTP/2 connection for up to 5 minutes, after which time you need to call SubscribeToShard again to renew the subscription if you want to continue to receive records. You can make one call to SubscribeToShard per second per registered consumer per shard. For example, if you have a 4000 shard stream and two registered stream consumers, you can make one SubscribeToShard request per second for each combination of shard and registered consumer, allowing you to subscribe both consumers to all 4000 shards in one second. If you call SubscribeToShard again with the same ConsumerARN and ShardId within 5 seconds of a successful call, you'll get a ResourceInUseException. If you call SubscribeToShard 5 seconds or more after a successful call, the second call takes over the subscription and the previous connection expires or fails with a ResourceInUseException. For an example of how to use this operation, see [Enhanced Fan-Out Using the Kinesis Data Streams API](https://docs.aws.amazon.com/streams/latest/dev/building-enhanced-consumers-api.html). /// /// - Parameter SubscribeToShardInput : [no documentation found] /// diff --git a/Sources/Services/AWSKinesis/Sources/AWSKinesis/Models.swift b/Sources/Services/AWSKinesis/Sources/AWSKinesis/Models.swift index dc64ecfe22f..57b6bc29686 100644 --- a/Sources/Services/AWSKinesis/Sources/AWSKinesis/Models.swift +++ b/Sources/Services/AWSKinesis/Sources/AWSKinesis/Models.swift @@ -455,16 +455,20 @@ public struct CreateStreamInput { /// A name to identify the stream. The stream name is scoped to the Amazon Web Services account used by the application that creates the stream. It is also scoped by Amazon Web Services Region. That is, two streams in two different Amazon Web Services accounts can have the same name. Two streams in the same Amazon Web Services account but in two different Regions can also have the same name. /// This member is required. public var streamName: Swift.String? + /// A set of up to 10 key-value pairs to use to create the tags. + public var tags: [Swift.String: Swift.String]? public init( shardCount: Swift.Int? = nil, streamModeDetails: KinesisClientTypes.StreamModeDetails? = nil, - streamName: Swift.String? = nil + streamName: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil ) { self.shardCount = shardCount self.streamModeDetails = streamModeDetails self.streamName = streamName + self.tags = tags } } @@ -2811,6 +2815,7 @@ extension CreateStreamInput { try writer["ShardCount"].write(value.shardCount) try writer["StreamModeDetails"].write(value.streamModeDetails, with: KinesisClientTypes.StreamModeDetails.write(value:to:)) try writer["StreamName"].write(value.streamName) + try writer["Tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } } @@ -3701,6 +3706,7 @@ enum GetResourcePolicyOutputError { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) case "InvalidArgumentException": return try InvalidArgumentException.makeError(baseError: baseError) case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceInUseException": return try ResourceInUseException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Models.swift b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Models.swift index 1a064fec2bc..46a218eff26 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Models.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Models.swift @@ -348,6 +348,7 @@ extension PinpointSMSVoiceV2ClientTypes { case optedOutNumber case optOutList case phoneNumber + case policy case pool case protectConfiguration case registration @@ -365,6 +366,7 @@ extension PinpointSMSVoiceV2ClientTypes { .optedOutNumber, .optOutList, .phoneNumber, + .policy, .pool, .protectConfiguration, .registration, @@ -388,6 +390,7 @@ extension PinpointSMSVoiceV2ClientTypes { case .optedOutNumber: return "opted-out-number" case .optOutList: return "opt-out-list" case .phoneNumber: return "phone-number" + case .policy: return "policy" case .pool: return "pool" case .protectConfiguration: return "protect-configuration" case .registration: return "registration" @@ -840,10 +843,10 @@ public struct AssociateOriginationIdentityInput { /// The new two-character code, in ISO 3166-1 alpha-2 format, for the country or region of the origination identity. /// This member is required. public var isoCountryCode: Swift.String? - /// The origination identity to use, such as PhoneNumberId, PhoneNumberArn, SenderId, or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn, while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. + /// The origination identity to use, such as PhoneNumberId, PhoneNumberArn, SenderId, or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn, while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? - /// The pool to update with the new Identity. This value can be either the PoolId or PoolArn, and you can find these values using [DescribePools]. + /// The pool to update with the new Identity. This value can be either the PoolId or PoolArn, and you can find these values using [DescribePools]. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var poolId: Swift.String? @@ -1108,12 +1111,12 @@ extension PinpointSMSVoiceV2ClientTypes { } extension PinpointSMSVoiceV2ClientTypes { - /// Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the Identity and Access Management (IAM) role associated with a Kinesis Data Firehose event destination. Event destinations, such as Kinesis Data Firehose, are associated with configuration sets, which enable you to publish message sending events. + /// Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the Identity and Access Management (IAM) role associated with a Firehose event destination. Event destinations, such as Firehose, are associated with configuration sets, which enable you to publish message sending events. public struct KinesisFirehoseDestination { /// The Amazon Resource Name (ARN) of the delivery stream. /// This member is required. public var deliveryStreamArn: Swift.String? - /// The ARN of an Identity and Access Management role that is able to write event data to an Amazon Kinesis Data Firehose destination. + /// The ARN of an Identity and Access Management role that is able to write event data to an Amazon Data Firehose destination. /// This member is required. public var iamRoleArn: Swift.String? @@ -1296,7 +1299,7 @@ extension PinpointSMSVoiceV2ClientTypes { } extension PinpointSMSVoiceV2ClientTypes { - /// Contains information about an event destination. Event destinations are associated with configuration sets, which enable you to publish message sending events to CloudWatch, Kinesis Data Firehose, or Amazon SNS. + /// Contains information about an event destination. Event destinations are associated with configuration sets, which enable you to publish message sending events to CloudWatch, Firehose, or Amazon SNS. public struct EventDestination { /// An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs. public var cloudWatchLogsDestination: PinpointSMSVoiceV2ClientTypes.CloudWatchLogsDestination? @@ -1306,7 +1309,7 @@ extension PinpointSMSVoiceV2ClientTypes { /// The name of the EventDestination. /// This member is required. public var eventDestinationName: Swift.String? - /// An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose. + /// An object that contains information about an event destination for logging to Amazon Data Firehose. public var kinesisFirehoseDestination: PinpointSMSVoiceV2ClientTypes.KinesisFirehoseDestination? /// An array of event types that determine which events to log. The TEXT_SENT event type is not supported. /// This member is required. @@ -1456,9 +1459,9 @@ public struct CreateEventDestinationInput { /// The name that identifies the event destination. /// This member is required. public var eventDestinationName: Swift.String? - /// An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose. + /// An object that contains information about an event destination for logging to Amazon Data Firehose. public var kinesisFirehoseDestination: PinpointSMSVoiceV2ClientTypes.KinesisFirehoseDestination? - /// An array of event types that determine which events to log. If "ALL" is used, then Amazon Pinpoint logs every event type. The TEXT_SENT event type is not supported. + /// An array of event types that determine which events to log. If "ALL" is used, then AWS End User Messaging SMS and Voice logs every event type. The TEXT_SENT event type is not supported. /// This member is required. public var matchingEventTypes: [PinpointSMSVoiceV2ClientTypes.EventType]? /// An object that contains information about an event destination for logging to Amazon SNS. @@ -1557,10 +1560,10 @@ public struct CreatePoolInput { /// The new two-character code, in ISO 3166-1 alpha-2 format, for the country or region of the new pool. /// This member is required. public var isoCountryCode: Swift.String? - /// The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive. + /// The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive. After the pool is created the MessageType can't be changed. /// This member is required. public var messageType: PinpointSMSVoiceV2ClientTypes.MessageType? - /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. + /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. After the pool is created you can add more origination identities to the pool by using [AssociateOriginationIdentity](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_AssociateOriginationIdentity.html). If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? /// An array of tags (key and value pairs) associated with the pool. @@ -1629,9 +1632,9 @@ public struct CreatePoolOutput { public var poolArn: Swift.String? /// The unique identifier for the pool. public var poolId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool - /// Indicates whether shared routes are enabled for the pool. + /// Indicates whether shared routes are enabled for the pool. Set to false and only origination identities in this pool are used to send messages. public var sharedRoutesEnabled: Swift.Bool /// The current status of the pool. /// @@ -2418,7 +2421,7 @@ public struct DeleteKeywordInput { /// The keyword to delete. /// This member is required. public var keyword: Swift.String? - /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, PoolId or PoolArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn and [DescribePools] to find the values of PoolId and PoolArn. + /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, PoolId or PoolArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn and [DescribePools] to find the values of PoolId and PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? @@ -2510,7 +2513,7 @@ public struct DeleteMediaMessageSpendLimitOverrideOutput { } public struct DeleteOptedOutNumberInput { - /// The OptOutListName or OptOutListArn to remove the phone number from. + /// The OptOutListName or OptOutListArn to remove the phone number from. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var optOutListName: Swift.String? /// The phone number, in E.164 format, to remove from the OptOutList. @@ -2556,7 +2559,7 @@ public struct DeleteOptedOutNumberOutput { } public struct DeleteOptOutListInput { - /// The OptOutListName or OptOutListArn of the OptOutList to delete. You can use [DescribeOptOutLists] to find the values for OptOutListName and OptOutListArn. + /// The OptOutListName or OptOutListArn of the OptOutList to delete. You can use [DescribeOptOutLists] to find the values for OptOutListName and OptOutListArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var optOutListName: Swift.String? @@ -2589,7 +2592,7 @@ public struct DeleteOptOutListOutput { } public struct DeletePoolInput { - /// The PoolId or PoolArn of the pool to delete. You can use [DescribePools] to find the values for PoolId and PoolArn . + /// The PoolId or PoolArn of the pool to delete. You can use [DescribePools] to find the values for PoolId and PoolArn . If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var poolId: Swift.String? @@ -2612,7 +2615,7 @@ public struct DeletePoolOutput { public var poolArn: Swift.String? /// The PoolId of the pool that was deleted. public var poolId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool /// Indicates whether shared routes are enabled for the pool. public var sharedRoutesEnabled: Swift.Bool @@ -2895,6 +2898,39 @@ public struct DeleteRegistrationFieldValueOutput { } } +public struct DeleteResourcePolicyInput { + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource you're deleting the resource-based policy from. + /// This member is required. + public var resourceArn: Swift.String? + + public init( + resourceArn: Swift.String? = nil + ) + { + self.resourceArn = resourceArn + } +} + +public struct DeleteResourcePolicyOutput { + /// The time when the resource-based policy was created, in [UNIX epoch time](https://www.epochconverter.com/) format. + public var createdTimestamp: Foundation.Date? + /// The JSON formatted resource-based policy that was deleted. + public var policy: Swift.String? + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource that the resource-based policy was deleted from. + public var resourceArn: Swift.String? + + public init( + createdTimestamp: Foundation.Date? = nil, + policy: Swift.String? = nil, + resourceArn: Swift.String? = nil + ) + { + self.createdTimestamp = createdTimestamp + self.policy = policy + self.resourceArn = resourceArn + } +} + public struct DeleteTextMessageSpendLimitOverrideInput { public init() { } @@ -3131,7 +3167,7 @@ public struct DescribeKeywordsInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. + /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] to find the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? @@ -3257,7 +3293,7 @@ public struct DescribeOptedOutNumbersInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The OptOutListName or OptOutListArn of the OptOutList. You can use [DescribeOptOutLists] to find the values for OptOutListName and OptOutListArn. + /// The OptOutListName or OptOutListArn of the OptOutList. You can use [DescribeOptOutLists] to find the values for OptOutListName and OptOutListArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var optOutListName: Swift.String? /// An array of phone numbers to search for in the OptOutList. @@ -3330,23 +3366,56 @@ public struct DescribeOptedOutNumbersOutput { } } +extension PinpointSMSVoiceV2ClientTypes { + + public enum Owner: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case `self` + case shared + case sdkUnknown(Swift.String) + + public static var allCases: [Owner] { + return [ + .self, + .shared + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .self: return "SELF" + case .shared: return "SHARED" + case let .sdkUnknown(s): return s + } + } + } +} + public struct DescribeOptOutListsInput { /// The maximum number of results to return per each request. public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The OptOutLists to show the details of. This is an array of strings that can be either the OptOutListName or OptOutListArn. + /// The OptOutLists to show the details of. This is an array of strings that can be either the OptOutListName or OptOutListArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var optOutListNames: [Swift.String]? + /// Use SELF to filter the list of Opt-Out List to ones your account owns or use SHARED to filter on Opt-Out List shared with your account. The Owner and OptOutListNames parameters can't be used at the same time. + public var owner: PinpointSMSVoiceV2ClientTypes.Owner? public init( maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, - optOutListNames: [Swift.String]? = nil + optOutListNames: [Swift.String]? = nil, + owner: PinpointSMSVoiceV2ClientTypes.Owner? = nil ) { self.maxResults = maxResults self.nextToken = nextToken self.optOutListNames = optOutListNames + self.owner = owner } } @@ -3475,19 +3544,23 @@ public struct DescribePhoneNumbersInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The unique identifier of phone numbers to find information about. This is an array of strings that can be either the PhoneNumberId or PhoneNumberArn. + /// Use SELF to filter the list of phone numbers to ones your account owns or use SHARED to filter on phone numbers shared with your account. The Owner and PhoneNumberIds parameters can't be used at the same time. + public var owner: PinpointSMSVoiceV2ClientTypes.Owner? + /// The unique identifier of phone numbers to find information about. This is an array of strings that can be either the PhoneNumberId or PhoneNumberArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var phoneNumberIds: [Swift.String]? public init( filters: [PinpointSMSVoiceV2ClientTypes.PhoneNumberFilter]? = nil, maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, + owner: PinpointSMSVoiceV2ClientTypes.Owner? = nil, phoneNumberIds: [Swift.String]? = nil ) { self.filters = filters self.maxResults = maxResults self.nextToken = nextToken + self.owner = owner self.phoneNumberIds = phoneNumberIds } } @@ -3639,7 +3712,7 @@ extension PinpointSMSVoiceV2ClientTypes { public var poolId: Swift.String? /// The unique identifier for the registration. public var registrationId: Swift.String? - /// When set to false an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out) + /// When set to false an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out) /// This member is required. public var selfManagedOptOutsEnabled: Swift.Bool /// The current status of the phone number. @@ -3789,19 +3862,23 @@ public struct DescribePoolsInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The unique identifier of pools to find. This is an array of strings that can be either the PoolId or PoolArn. + /// Use SELF to filter the list of Pools to ones your account owns or use SHARED to filter on Pools shared with your account. The Owner and PoolIds parameters can't be used at the same time. + public var owner: PinpointSMSVoiceV2ClientTypes.Owner? + /// The unique identifier of pools to find. This is an array of strings that can be either the PoolId or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var poolIds: [Swift.String]? public init( filters: [PinpointSMSVoiceV2ClientTypes.PoolFilter]? = nil, maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, + owner: PinpointSMSVoiceV2ClientTypes.Owner? = nil, poolIds: [Swift.String]? = nil ) { self.filters = filters self.maxResults = maxResults self.nextToken = nextToken + self.owner = owner self.poolIds = poolIds } } @@ -3827,10 +3904,10 @@ extension PinpointSMSVoiceV2ClientTypes { /// The unique identifier for the pool. /// This member is required. public var poolId: Swift.String? - /// When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out) + /// When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out) /// This member is required. public var selfManagedOptOutsEnabled: Swift.Bool - /// Allows you to enable shared routes on your pool. By default, this is set to False. If you set this value to True, your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other Amazon Pinpoint users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code. + /// Allows you to enable shared routes on your pool. By default, this is set to False. If you set this value to True, your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code. /// This member is required. public var sharedRoutesEnabled: Swift.Bool /// The current status of the pool. @@ -5305,7 +5382,7 @@ extension PinpointSMSVoiceV2ClientTypes { } extension PinpointSMSVoiceV2ClientTypes { - /// The alphanumeric sender ID in a specific country that you want to describe. For more information on sender IDs see [Requesting sender IDs for SMS messaging with Amazon Pinpoint ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-sender-id.html) in the Amazon Pinpoint User Guide. + /// The alphanumeric sender ID in a specific country that you want to describe. For more information on sender IDs see [Requesting sender IDs ](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id-request.html) in the AWS End User Messaging SMS User Guide. public struct SenderIdAndCountry { /// The two-character code, in ISO 3166-1 alpha-2 format, for the country or region. /// This member is required. @@ -5333,19 +5410,23 @@ public struct DescribeSenderIdsInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// An array of SenderIdAndCountry objects to search for. + /// Use SELF to filter the list of Sender Ids to ones your account owns or use SHARED to filter on Sender Ids shared with your account. The Owner and SenderIds parameters can't be used at the same time. + public var owner: PinpointSMSVoiceV2ClientTypes.Owner? + /// An array of SenderIdAndCountry objects to search for. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var senderIds: [PinpointSMSVoiceV2ClientTypes.SenderIdAndCountry]? public init( filters: [PinpointSMSVoiceV2ClientTypes.SenderIdFilter]? = nil, maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, + owner: PinpointSMSVoiceV2ClientTypes.Owner? = nil, senderIds: [PinpointSMSVoiceV2ClientTypes.SenderIdAndCountry]? = nil ) { self.filters = filters self.maxResults = maxResults self.nextToken = nextToken + self.owner = owner self.senderIds = senderIds } } @@ -5466,7 +5547,7 @@ extension PinpointSMSVoiceV2ClientTypes { } extension PinpointSMSVoiceV2ClientTypes { - /// Describes the current Amazon Pinpoint monthly spend limits for sending voice and text messages. For more information on increasing your monthly spend limit, see [ Requesting increases to your monthly SMS spending quota for Amazon Pinpoint ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-spend-threshold.html) in the Amazon Pinpoint User Guide. + /// Describes the current monthly spend limits for sending voice and text messages. For more information on increasing your monthly spend limit, see [ Requesting a spending quota increase ](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html) in the AWS End User Messaging SMS User Guide. public struct SpendLimit { /// The maximum amount of money, in US dollars, that you want to be able to spend sending messages each month. This value has to be less than or equal to the amount in MaxLimit. To use this custom limit, Overridden must be set to true. /// This member is required. @@ -5682,10 +5763,10 @@ public struct DisassociateOriginationIdentityInput { /// The two-character code, in ISO 3166-1 alpha-2 format, for the country or region. /// This member is required. public var isoCountryCode: Swift.String? - /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] find the values for PhoneNumberId and PhoneNumberArn, or use [DescribeSenderIds] to get the values for SenderId and SenderIdArn. + /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] find the values for PhoneNumberId and PhoneNumberArn, or use [DescribeSenderIds] to get the values for SenderId and SenderIdArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? - /// The unique identifier for the pool to disassociate with the origination identity. This value can be either the PoolId or PoolArn. + /// The unique identifier for the pool to disassociate with the origination identity. This value can be either the PoolId or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var poolId: Swift.String? @@ -5904,7 +5985,7 @@ extension PinpointSMSVoiceV2ClientTypes { } public struct GetProtectConfigurationCountryRuleSetOutput { - /// A map of ProtectConfigurationCountryRuleSetInformation objects that contain the details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see [Supported countries and regions (SMS channel)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) in the Amazon Pinpoint SMS user guide. + /// A map of ProtectConfigurationCountryRuleSetInformation objects that contain the details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see [Supported countries and regions (SMS channel)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) in the AWS End User Messaging SMS User Guide. /// This member is required. public var countryRuleSet: [Swift.String: PinpointSMSVoiceV2ClientTypes.ProtectConfigurationCountryRuleSetInformation]? /// The capability type associated with the returned ProtectConfigurationCountryRuleSetInformation objects. @@ -5931,6 +6012,39 @@ public struct GetProtectConfigurationCountryRuleSetOutput { } } +public struct GetResourcePolicyInput { + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource attached to the resource-based policy. + /// This member is required. + public var resourceArn: Swift.String? + + public init( + resourceArn: Swift.String? = nil + ) + { + self.resourceArn = resourceArn + } +} + +public struct GetResourcePolicyOutput { + /// The time when the resource-based policy was created, in [UNIX epoch time](https://www.epochconverter.com/) format. + public var createdTimestamp: Foundation.Date? + /// The JSON formatted string that contains the resource-based policy attached to the AWS End User Messaging SMS and Voice resource. + public var policy: Swift.String? + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource attached to the resource-based policy. + public var resourceArn: Swift.String? + + public init( + createdTimestamp: Foundation.Date? = nil, + policy: Swift.String? = nil, + resourceArn: Swift.String? = nil + ) + { + self.createdTimestamp = createdTimestamp + self.policy = policy + self.resourceArn = resourceArn + } +} + extension PinpointSMSVoiceV2ClientTypes { public enum LanguageCode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -6051,7 +6165,7 @@ public struct ListPoolOriginationIdentitiesInput { public var maxResults: Swift.Int? /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. public var nextToken: Swift.String? - /// The unique identifier for the pool. This value can be either the PoolId or PoolArn. + /// The unique identifier for the pool. This value can be either the PoolId or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var poolId: Swift.String? @@ -6316,7 +6430,7 @@ public struct PutKeywordInput { /// The message associated with the keyword. /// This member is required. public var keywordMessage: Swift.String? - /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] get the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. + /// The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use [DescribePhoneNumbers] get the values for PhoneNumberId and PhoneNumberArn while [DescribeSenderIds] can be used to get the values for SenderId and SenderIdArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? @@ -6363,7 +6477,7 @@ public struct PutKeywordOutput { } public struct PutOptedOutNumberInput { - /// The OptOutListName or OptOutListArn to add the phone number to. + /// The OptOutListName or OptOutListArn to add the phone number to. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var optOutListName: Swift.String? /// The phone number to add to the OptOutList in E.164 format. @@ -6478,8 +6592,46 @@ public struct PutRegistrationFieldValueOutput { } } +public struct PutResourcePolicyInput { + /// The JSON formatted resource-based policy to attach. + /// This member is required. + public var policy: Swift.String? + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource to attach the resource-based policy to. + /// This member is required. + public var resourceArn: Swift.String? + + public init( + policy: Swift.String? = nil, + resourceArn: Swift.String? = nil + ) + { + self.policy = policy + self.resourceArn = resourceArn + } +} + +public struct PutResourcePolicyOutput { + /// The time when the resource-based policy was created, in [UNIX epoch time](https://www.epochconverter.com/) format. + public var createdTimestamp: Foundation.Date? + /// The JSON formatted Resource Policy. + public var policy: Swift.String? + /// The Amazon Resource Name (ARN) of the AWS End User Messaging SMS and Voice resource attached to the resource-based policy. + public var resourceArn: Swift.String? + + public init( + createdTimestamp: Foundation.Date? = nil, + policy: Swift.String? = nil, + resourceArn: Swift.String? = nil + ) + { + self.createdTimestamp = createdTimestamp + self.policy = policy + self.resourceArn = resourceArn + } +} + public struct ReleasePhoneNumberInput { - /// The PhoneNumberId or PhoneNumberArn of the phone number to release. You can use [DescribePhoneNumbers] to get the values for PhoneNumberId and PhoneNumberArn. + /// The PhoneNumberId or PhoneNumberArn of the phone number to release. You can use [DescribePhoneNumbers] to get the values for PhoneNumberId and PhoneNumberArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var phoneNumberId: Swift.String? @@ -6514,7 +6666,7 @@ public struct ReleasePhoneNumberOutput { public var phoneNumberId: Swift.String? /// The unique identifier for the registration. public var registrationId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool /// The current status of the request. public var status: PinpointSMSVoiceV2ClientTypes.NumberStatus? @@ -6675,9 +6827,9 @@ public struct RequestPhoneNumberInput { /// The type of phone number to request. /// This member is required. public var numberType: PinpointSMSVoiceV2ClientTypes.RequestableNumberType? - /// The name of the OptOutList to associate with the phone number. You can use the OptOutListName or OptOutListArn. + /// The name of the OptOutList to associate with the phone number. You can use the OptOutListName or OptOutListArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var optOutListName: Swift.String? - /// The pool to associated with the phone number. You can use the PoolId or PoolArn. + /// The pool to associated with the phone number. You can use the PoolId or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var poolId: Swift.String? /// Use this field to attach your phone number for an external registration process. public var registrationId: Swift.String? @@ -6737,7 +6889,7 @@ public struct RequestPhoneNumberOutput { public var poolId: Swift.String? /// The unique identifier for the registration. public var registrationId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool /// The current status of the request. public var status: PinpointSMSVoiceV2ClientTypes.NumberStatus? @@ -6913,7 +7065,7 @@ public struct SendDestinationNumberVerificationCodeInput { public var destinationCountryParameters: [Swift.String: Swift.String]? /// Choose the language to use for the message. public var languageCode: PinpointSMSVoiceV2ClientTypes.LanguageCode? - /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. + /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var originationIdentity: Swift.String? /// Choose to send the verification code as an SMS or voice message. /// This member is required. @@ -6971,7 +7123,7 @@ public struct SendMediaMessageInput { public var mediaUrls: [Swift.String]? /// The text body of the message. public var messageBody: Swift.String? - /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. + /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? /// The unique identifier of the protect configuration to use. @@ -7023,25 +7175,29 @@ public struct SendTextMessageInput { /// You can specify custom data in this field. If you do, that data is logged to the event destination. public var context: [Swift.String: Swift.String]? /// This field is used for any country-specific registration requirements. Currently, this setting is only used when you send messages to recipients in India using a sender ID. For more information see [Special requirements for sending SMS messages to recipients in India](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-senderid-india.html). + /// + /// * IN_ENTITY_ID The entity ID or Principal Entity (PE) ID that you received after completing the sender ID registration process. + /// + /// * IN_TEMPLATE_ID The template ID that you received after completing the sender ID registration process. Make sure that the Template ID that you specify matches your message template exactly. If your message doesn't match the template that you provided during the registration process, the mobile carriers might reject your message. public var destinationCountryParameters: [Swift.String: Swift.String]? /// The destination phone number in E.164 format. /// This member is required. public var destinationPhoneNumber: Swift.String? - /// When set to true, the message is checked and validated, but isn't sent to the end recipient. + /// When set to true, the message is checked and validated, but isn't sent to the end recipient. You are not charged for using DryRun. The Message Parts per Second (MPS) limit when using DryRun is five. If your origination identity has a lower MPS limit then the lower MPS limit is used. For more information about MPS limits, see [Message Parts per Second (MPS) limits](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-mps.html) in the AWS End User Messaging SMS User Guide.. public var dryRun: Swift.Bool? /// When you register a short code in the US, you must specify a program name. If you don’t have a US short code, omit this attribute. public var keyword: Swift.String? - /// The maximum amount that you want to spend, in US dollars, per each text message part. A text message can contain multiple parts. + /// The maximum amount that you want to spend, in US dollars, per each text message. If the calculated amount to send the text message is greater than MaxPrice, the message is not sent and an error is returned. public var maxPrice: Swift.String? /// The body of the text message. public var messageBody: Swift.String? /// The type of message. Valid values are for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive. public var messageType: PinpointSMSVoiceV2ClientTypes.MessageType? - /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. + /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var originationIdentity: Swift.String? /// The unique identifier for the protect configuration. public var protectConfigurationId: Swift.String? - /// How long the text message is valid for. By default this is 72 hours. + /// How long the text message is valid for, in seconds. By default this is 72 hours. If the messages isn't handed off before the TTL expires we stop attempting to hand off the message and return TTL_EXPIRED event. public var timeToLive: Swift.Int? public init( @@ -7335,7 +7491,7 @@ public struct SendVoiceMessageInput { /// /// * SSML: When used the maximum character limit is 6000 including SSML tagging. public var messageBodyTextType: PinpointSMSVoiceV2ClientTypes.VoiceMessageBodyTextType? - /// The origination identity to use for the voice call. This can be the PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn. + /// The origination identity to use for the voice call. This can be the PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var originationIdentity: Swift.String? /// The unique identifier for the protect configuration. @@ -7686,7 +7842,7 @@ public struct UpdateEventDestinationInput { /// The name to use for the event destination. /// This member is required. public var eventDestinationName: Swift.String? - /// An object that contains information about an event destination for logging to Kinesis Data Firehose. + /// An object that contains information about an event destination for logging to Firehose. public var kinesisFirehoseDestination: PinpointSMSVoiceV2ClientTypes.KinesisFirehoseDestination? /// An array of event types that determine which events to log. The TEXT_SENT event type is not supported. public var matchingEventTypes: [PinpointSMSVoiceV2ClientTypes.EventType]? @@ -7738,10 +7894,10 @@ public struct UpdatePhoneNumberInput { public var deletionProtectionEnabled: Swift.Bool? /// The OptOutList to add the phone number to. Valid values for this field can be either the OutOutListName or OutOutListArn. public var optOutListName: Swift.String? - /// The unique identifier of the phone number. Valid values for this field can be either the PhoneNumberId or PhoneNumberArn. + /// The unique identifier of the phone number. Valid values for this field can be either the PhoneNumberId or PhoneNumberArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var phoneNumberId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool? /// The Amazon Resource Name (ARN) of the two way channel. public var twoWayChannelArn: Swift.String? @@ -7849,12 +8005,12 @@ public struct UpdatePhoneNumberOutput { public struct UpdatePoolInput { /// When set to true the pool can't be deleted. public var deletionProtectionEnabled: Swift.Bool? - /// The OptOutList to associate with the pool. Valid values are either OptOutListName or OptOutListArn. + /// The OptOutList to associate with the pool. Valid values are either OptOutListName or OptOutListArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). public var optOutListName: Swift.String? - /// The unique identifier of the pool to update. Valid values are either the PoolId or PoolArn. + /// The unique identifier of the pool to update. Valid values are either the PoolId or PoolArn. If you are using a shared AWS End User Messaging SMS and Voice resource then you must use the full Amazon Resource Name(ARN). /// This member is required. public var poolId: Swift.String? - /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool? /// Indicates whether shared routes are enabled for the pool. public var sharedRoutesEnabled: Swift.Bool? @@ -7900,7 +8056,7 @@ public struct UpdatePoolOutput { public var poolArn: Swift.String? /// The unique identifier of the pool. public var poolId: Swift.String? - /// When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. + /// When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS and Voice automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. public var selfManagedOptOutsEnabled: Swift.Bool /// Indicates whether shared routes are enabled for the pool. public var sharedRoutesEnabled: Swift.Bool @@ -7994,7 +8150,7 @@ public struct UpdateProtectConfigurationOutput { } public struct UpdateProtectConfigurationCountryRuleSetInput { - /// A map of ProtectConfigurationCountryRuleSetInformation objects that contain the details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see [Supported countries and regions (SMS channel)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) in the Amazon Pinpoint SMS user guide. + /// A map of ProtectConfigurationCountryRuleSetInformation objects that contain the details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see [Supported countries and regions (SMS channel)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) in the AWS End User Messaging SMS User Guide. /// This member is required. public var countryRuleSetUpdates: [Swift.String: PinpointSMSVoiceV2ClientTypes.ProtectConfigurationCountryRuleSetInformation]? /// The number capability to apply the CountryRuleSetUpdates updates to. @@ -8346,6 +8502,13 @@ extension DeleteRegistrationFieldValueInput { } } +extension DeleteResourcePolicyInput { + + static func urlPathProvider(_ value: DeleteResourcePolicyInput) -> Swift.String? { + return "/" + } +} + extension DeleteTextMessageSpendLimitOverrideInput { static func urlPathProvider(_ value: DeleteTextMessageSpendLimitOverrideInput) -> Swift.String? { @@ -8528,6 +8691,13 @@ extension GetProtectConfigurationCountryRuleSetInput { } } +extension GetResourcePolicyInput { + + static func urlPathProvider(_ value: GetResourcePolicyInput) -> Swift.String? { + return "/" + } +} + extension ListPoolOriginationIdentitiesInput { static func urlPathProvider(_ value: ListPoolOriginationIdentitiesInput) -> Swift.String? { @@ -8570,6 +8740,13 @@ extension PutRegistrationFieldValueInput { } } +extension PutResourcePolicyInput { + + static func urlPathProvider(_ value: PutResourcePolicyInput) -> Swift.String? { + return "/" + } +} + extension ReleasePhoneNumberInput { static func urlPathProvider(_ value: ReleasePhoneNumberInput) -> Swift.String? { @@ -8979,6 +9156,14 @@ extension DeleteRegistrationFieldValueInput { } } +extension DeleteResourcePolicyInput { + + static func write(value: DeleteResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceArn"].write(value.resourceArn) + } +} + extension DeleteTextMessageSpendLimitOverrideInput { static func write(value: DeleteTextMessageSpendLimitOverrideInput?, to writer: SmithyJSON.Writer) throws { @@ -9063,6 +9248,7 @@ extension DescribeOptOutListsInput { try writer["MaxResults"].write(value.maxResults) try writer["NextToken"].write(value.nextToken) try writer["OptOutListNames"].writeList(value.optOutListNames, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["Owner"].write(value.owner) } } @@ -9073,6 +9259,7 @@ extension DescribePhoneNumbersInput { try writer["Filters"].writeList(value.filters, memberWritingClosure: PinpointSMSVoiceV2ClientTypes.PhoneNumberFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["MaxResults"].write(value.maxResults) try writer["NextToken"].write(value.nextToken) + try writer["Owner"].write(value.owner) try writer["PhoneNumberIds"].writeList(value.phoneNumberIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -9084,6 +9271,7 @@ extension DescribePoolsInput { try writer["Filters"].writeList(value.filters, memberWritingClosure: PinpointSMSVoiceV2ClientTypes.PoolFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["MaxResults"].write(value.maxResults) try writer["NextToken"].write(value.nextToken) + try writer["Owner"].write(value.owner) try writer["PoolIds"].writeList(value.poolIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -9187,6 +9375,7 @@ extension DescribeSenderIdsInput { try writer["Filters"].writeList(value.filters, memberWritingClosure: PinpointSMSVoiceV2ClientTypes.SenderIdFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["MaxResults"].write(value.maxResults) try writer["NextToken"].write(value.nextToken) + try writer["Owner"].write(value.owner) try writer["SenderIds"].writeList(value.senderIds, memberWritingClosure: PinpointSMSVoiceV2ClientTypes.SenderIdAndCountry.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -9249,6 +9438,14 @@ extension GetProtectConfigurationCountryRuleSetInput { } } +extension GetResourcePolicyInput { + + static func write(value: GetResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceArn"].write(value.resourceArn) + } +} + extension ListPoolOriginationIdentitiesInput { static func write(value: ListPoolOriginationIdentitiesInput?, to writer: SmithyJSON.Writer) throws { @@ -9311,6 +9508,15 @@ extension PutRegistrationFieldValueInput { } } +extension PutResourcePolicyInput { + + static func write(value: PutResourcePolicyInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Policy"].write(value.policy) + try writer["ResourceArn"].write(value.resourceArn) + } +} + extension ReleasePhoneNumberInput { static func write(value: ReleasePhoneNumberInput?, to writer: SmithyJSON.Writer) throws { @@ -10008,6 +10214,20 @@ extension DeleteRegistrationFieldValueOutput { } } +extension DeleteResourcePolicyOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteResourcePolicyOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DeleteResourcePolicyOutput() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.policy = try reader["Policy"].readIfPresent() + value.resourceArn = try reader["ResourceArn"].readIfPresent() + return value + } +} + extension DeleteTextMessageSpendLimitOverrideOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteTextMessageSpendLimitOverrideOutput { @@ -10367,6 +10587,20 @@ extension GetProtectConfigurationCountryRuleSetOutput { } } +extension GetResourcePolicyOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetResourcePolicyOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetResourcePolicyOutput() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.policy = try reader["Policy"].readIfPresent() + value.resourceArn = try reader["ResourceArn"].readIfPresent() + return value + } +} + extension ListPoolOriginationIdentitiesOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListPoolOriginationIdentitiesOutput { @@ -10461,6 +10695,20 @@ extension PutRegistrationFieldValueOutput { } } +extension PutResourcePolicyOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutResourcePolicyOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = PutResourcePolicyOutput() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.policy = try reader["Policy"].readIfPresent() + value.resourceArn = try reader["ResourceArn"].readIfPresent() + return value + } +} + extension ReleasePhoneNumberOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ReleasePhoneNumberOutput { @@ -11332,6 +11580,24 @@ enum DeleteRegistrationFieldValueOutputError { } } +enum DeleteResourcePolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DeleteTextMessageSpendLimitOverrideOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -11796,6 +12062,24 @@ enum GetProtectConfigurationCountryRuleSetOutputError { } } +enum GetResourcePolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListPoolOriginationIdentitiesOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -11907,6 +12191,24 @@ enum PutRegistrationFieldValueOutputError { } } +enum PutResourcePolicyOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ReleasePhoneNumberOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Paginators.swift b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Paginators.swift index 8570419f1f7..c18d9ca096c 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Paginators.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/Paginators.swift @@ -187,7 +187,8 @@ extension DescribeOptOutListsInput: ClientRuntime.PaginateToken { return DescribeOptOutListsInput( maxResults: self.maxResults, nextToken: token, - optOutListNames: self.optOutListNames + optOutListNames: self.optOutListNames, + owner: self.owner )} } @@ -219,6 +220,7 @@ extension DescribePhoneNumbersInput: ClientRuntime.PaginateToken { filters: self.filters, maxResults: self.maxResults, nextToken: token, + owner: self.owner, phoneNumberIds: self.phoneNumberIds )} } @@ -251,6 +253,7 @@ extension DescribePoolsInput: ClientRuntime.PaginateToken { filters: self.filters, maxResults: self.maxResults, nextToken: token, + owner: self.owner, poolIds: self.poolIds )} } @@ -543,6 +546,7 @@ extension DescribeSenderIdsInput: ClientRuntime.PaginateToken { filters: self.filters, maxResults: self.maxResults, nextToken: token, + owner: self.owner, senderIds: self.senderIds )} } diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift index 699ab49e178..fec1661524a 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/Sources/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift @@ -425,7 +425,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `CreateEventDestination` operation on the `PinpointSMSVoiceV2` service. /// - /// Creates a new event destination in a configuration set. An event destination is a location where you send message events. The event options are Amazon CloudWatch, Amazon Kinesis Data Firehose, or Amazon SNS. For example, when a message is delivered successfully, you can send information about that event to an event destination, or send notifications to endpoints that are subscribed to an Amazon SNS topic. Each configuration set can contain between 0 and 5 event destinations. Each event destination can contain a reference to a single destination, such as a CloudWatch or Kinesis Data Firehose destination. + /// Creates a new event destination in a configuration set. An event destination is a location where you send message events. The event options are Amazon CloudWatch, Amazon Data Firehose, or Amazon SNS. For example, when a message is delivered successfully, you can send information about that event to an event destination, or send notifications to endpoints that are subscribed to an Amazon SNS topic. Each configuration set can contain between 0 and 5 event destinations. Each event destination can contain a reference to a single destination, such as a CloudWatch or Firehose destination. /// /// - Parameter CreateEventDestinationInput : [no documentation found] /// @@ -502,7 +502,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `CreateOptOutList` operation on the `PinpointSMSVoiceV2` service. /// - /// Creates a new opt-out list. If the opt-out list name already exists, an error is returned. An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword "STOP," an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see [ SMS opt out ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-manage.html#channels-sms-manage-optout) in the Amazon Pinpoint User Guide. + /// Creates a new opt-out list. If the opt-out list name already exists, an error is returned. An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword "STOP," an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see [ SMS opt out ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-manage.html#channels-sms-manage-optout) in the AWS End User Messaging SMS User Guide. /// /// - Parameter CreateOptOutListInput : [no documentation found] /// @@ -1480,7 +1480,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DeleteKeyword` operation on the `PinpointSMSVoiceV2` service. /// - /// Deletes an existing keyword from an origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message. Keywords "HELP" and "STOP" can't be deleted or modified. + /// Deletes an existing keyword from an origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, AWS End User Messaging SMS and Voice responds with a customizable message. Keywords "HELP" and "STOP" can't be deleted or modified. /// /// - Parameter DeleteKeywordInput : [no documentation found] /// @@ -2151,9 +2151,83 @@ extension PinpointSMSVoiceV2Client { return try await op.execute(input: input) } + /// Performs the `DeleteResourcePolicy` operation on the `PinpointSMSVoiceV2` service. + /// + /// Deletes the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. + /// + /// - Parameter DeleteResourcePolicyInput : [no documentation found] + /// + /// - Returns: `DeleteResourcePolicyOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : The request was denied because you don't have sufficient permissions to access the resource. + /// - `InternalServerException` : The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future. + /// - `ResourceNotFoundException` : A requested resource couldn't be found. + /// - `ThrottlingException` : An error that occurred because too many requests were sent during a certain amount of time. + /// - `ValidationException` : A validation exception for a field. + public func deleteResourcePolicy(input: DeleteResourcePolicyInput) async throws -> DeleteResourcePolicyOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteResourcePolicy") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "sms-voice") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteResourcePolicyInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteResourcePolicyOutput.httpOutput(from:), DeleteResourcePolicyOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "PinpointSMSVoiceV2.DeleteResourcePolicy")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteResourcePolicyInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "PinpointSMSVoiceV2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteResourcePolicy") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeleteTextMessageSpendLimitOverride` operation on the `PinpointSMSVoiceV2` service. /// - /// Deletes an account-level monthly spending limit override for sending text messages. Deleting a spend limit override will set the EnforcedLimit to equal the MaxLimit, which is controlled by Amazon Web Services. For more information on spend limits (quotas) see [Amazon Pinpoint quotas ](https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html) in the Amazon Pinpoint Developer Guide. + /// Deletes an account-level monthly spending limit override for sending text messages. Deleting a spend limit override will set the EnforcedLimit to equal the MaxLimit, which is controlled by Amazon Web Services. For more information on spend limits (quotas) see [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter DeleteTextMessageSpendLimitOverrideInput : [no documentation found] /// @@ -2301,7 +2375,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DeleteVoiceMessageSpendLimitOverride` operation on the `PinpointSMSVoiceV2` service. /// - /// Deletes an account level monthly spend limit override for sending voice messages. Deleting a spend limit override sets the EnforcedLimit equal to the MaxLimit, which is controlled by Amazon Web Services. For more information on spending limits (quotas) see [Amazon Pinpoint quotas](https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html) in the Amazon Pinpoint Developer Guide. + /// Deletes an account level monthly spend limit override for sending voice messages. Deleting a spend limit override sets the EnforcedLimit equal to the MaxLimit, which is controlled by Amazon Web Services. For more information on spending limits (quotas) see [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter DeleteVoiceMessageSpendLimitOverrideInput : [no documentation found] /// @@ -2374,7 +2448,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DescribeAccountAttributes` operation on the `PinpointSMSVoiceV2` service. /// - /// Describes attributes of your Amazon Web Services account. The supported account attributes include account tier, which indicates whether your account is in the sandbox or production environment. When you're ready to move your account out of the sandbox, create an Amazon Web Services Support case for a service limit increase request. New Amazon Pinpoint accounts are placed into an SMS or voice sandbox. The sandbox protects both Amazon Web Services end recipients and SMS or voice recipients from fraud and abuse. + /// Describes attributes of your Amazon Web Services account. The supported account attributes include account tier, which indicates whether your account is in the sandbox or production environment. When you're ready to move your account out of the sandbox, create an Amazon Web Services Support case for a service limit increase request. New accounts are placed into an SMS or voice sandbox. The sandbox protects both Amazon Web Services end recipients and SMS or voice recipients from fraud and abuse. /// /// - Parameter DescribeAccountAttributesInput : [no documentation found] /// @@ -2447,7 +2521,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DescribeAccountLimits` operation on the `PinpointSMSVoiceV2` service. /// - /// Describes the current Amazon Pinpoint SMS Voice V2 resource quotas for your account. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value. When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of configuration sets, opt-out lists, phone numbers, and pools that you can create in a given Region. For more information see [ Amazon Pinpoint quotas ](https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html) in the Amazon Pinpoint Developer Guide. + /// Describes the current AWS End User Messaging SMS and Voice SMS Voice V2 resource quotas for your account. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value. When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of configuration sets, opt-out lists, phone numbers, and pools that you can create in a given Region. For more information see [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter DescribeAccountLimitsInput : [no documentation found] /// @@ -2594,7 +2668,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DescribeKeywords` operation on the `PinpointSMSVoiceV2` service. /// - /// Describes the specified keywords or all keywords on your origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message. If you specify a keyword that isn't valid, an error is returned. + /// Describes the specified keywords or all keywords on your origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, AWS End User Messaging SMS and Voice responds with a customizable message. If you specify a keyword that isn't valid, an error is returned. /// /// - Parameter DescribeKeywordsInput : [no documentation found] /// @@ -3627,7 +3701,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `DescribeSpendLimits` operation on the `PinpointSMSVoiceV2` service. /// - /// Describes the current Amazon Pinpoint monthly spend limits for sending voice and text messages. When you establish an Amazon Web Services account, the account has initial monthly spend limit in a given Region. For more information on increasing your monthly spend limit, see [ Requesting increases to your monthly SMS spending quota for Amazon Pinpoint ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-spend-threshold.html) in the Amazon Pinpoint User Guide. + /// Describes the current monthly spend limits for sending voice and text messages. When you establish an Amazon Web Services account, the account has initial monthly spend limit in a given Region. For more information on increasing your monthly spend limit, see [ Requesting increases to your monthly SMS, MMS, or Voice spending quota ](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter DescribeSpendLimitsInput : [no documentation found] /// @@ -4072,6 +4146,80 @@ extension PinpointSMSVoiceV2Client { return try await op.execute(input: input) } + /// Performs the `GetResourcePolicy` operation on the `PinpointSMSVoiceV2` service. + /// + /// Retrieves the JSON text of the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. + /// + /// - Parameter GetResourcePolicyInput : [no documentation found] + /// + /// - Returns: `GetResourcePolicyOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : The request was denied because you don't have sufficient permissions to access the resource. + /// - `InternalServerException` : The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future. + /// - `ResourceNotFoundException` : A requested resource couldn't be found. + /// - `ThrottlingException` : An error that occurred because too many requests were sent during a certain amount of time. + /// - `ValidationException` : A validation exception for a field. + public func getResourcePolicy(input: GetResourcePolicyInput) async throws -> GetResourcePolicyOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getResourcePolicy") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "sms-voice") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetResourcePolicyInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetResourcePolicyOutput.httpOutput(from:), GetResourcePolicyOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "PinpointSMSVoiceV2.GetResourcePolicy")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetResourcePolicyInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "PinpointSMSVoiceV2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetResourcePolicy") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListPoolOriginationIdentities` operation on the `PinpointSMSVoiceV2` service. /// /// Lists all associated origination identities in your pool. If you specify filters, the output includes information for only those origination identities that meet the filter criteria. @@ -4296,7 +4444,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `PutKeyword` operation on the `PinpointSMSVoiceV2` service. /// - /// Creates or updates a keyword configuration on an origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message. If you specify a keyword that isn't valid, an error is returned. + /// Creates or updates a keyword configuration on an origination phone number or pool. A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, AWS End User Messaging SMS and Voice responds with a customizable message. If you specify a keyword that isn't valid, an error is returned. /// /// - Parameter PutKeywordInput : [no documentation found] /// @@ -4519,6 +4667,80 @@ extension PinpointSMSVoiceV2Client { return try await op.execute(input: input) } + /// Performs the `PutResourcePolicy` operation on the `PinpointSMSVoiceV2` service. + /// + /// Attaches a resource-based policy to a AWS End User Messaging SMS and Voice resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see [Working with shared resources](https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html) in the AWS End User Messaging SMS User Guide. + /// + /// - Parameter PutResourcePolicyInput : [no documentation found] + /// + /// - Returns: `PutResourcePolicyOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : The request was denied because you don't have sufficient permissions to access the resource. + /// - `InternalServerException` : The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future. + /// - `ResourceNotFoundException` : A requested resource couldn't be found. + /// - `ThrottlingException` : An error that occurred because too many requests were sent during a certain amount of time. + /// - `ValidationException` : A validation exception for a field. + public func putResourcePolicy(input: PutResourcePolicyInput) async throws -> PutResourcePolicyOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "putResourcePolicy") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "sms-voice") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(PutResourcePolicyInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(PutResourcePolicyOutput.httpOutput(from:), PutResourcePolicyOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "PinpointSMSVoiceV2.PutResourcePolicy")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: PutResourcePolicyInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "PinpointSMSVoiceV2") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "PutResourcePolicy") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ReleasePhoneNumber` operation on the `PinpointSMSVoiceV2` service. /// /// Releases an existing origination phone number in your account. Once released, a phone number is no longer available for sending messages. If the origination phone number has deletion protection enabled or is associated with a pool, an error is returned. @@ -4671,7 +4893,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `RequestPhoneNumber` operation on the `PinpointSMSVoiceV2` service. /// - /// Request an origination phone number for use in your account. For more information on phone number request see [ Requesting a number ](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-request-number.html) in the Amazon Pinpoint User Guide. + /// Request an origination phone number for use in your account. For more information on phone number request see [Request a phone number](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter RequestPhoneNumberInput : [no documentation found] /// @@ -4976,7 +5198,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `SendTextMessage` operation on the `PinpointSMSVoiceV2` service. /// - /// Creates a new text message and sends it to a recipient's phone number. SMS throughput limits are measured in Message Parts per Second (MPS). Your MPS limit depends on the destination country of your messages, as well as the type of phone number (origination number) that you use to send the message. For more information, see [Message Parts per Second (MPS) limits](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-mps.html) in the Amazon Pinpoint User Guide. + /// Creates a new text message and sends it to a recipient's phone number. SendTextMessage only sends an SMS message to one recipient each time it is invoked. SMS throughput limits are measured in Message Parts per Second (MPS). Your MPS limit depends on the destination country of your messages, as well as the type of phone number (origination number) that you use to send the message. For more information about MPS, see [Message Parts per Second (MPS) limits](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-mps.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter SendTextMessageInput : [no documentation found] /// @@ -5052,7 +5274,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `SendVoiceMessage` operation on the `PinpointSMSVoiceV2` service. /// - /// Allows you to send a request that sends a voice message through Amazon Pinpoint. This operation uses [Amazon Polly](http://aws.amazon.com/polly/) to convert a text script into a voice message. + /// Allows you to send a request that sends a voice message. This operation uses [Amazon Polly](http://aws.amazon.com/polly/) to convert a text script into a voice message. /// /// - Parameter SendVoiceMessageInput : [no documentation found] /// @@ -5644,7 +5866,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `TagResource` operation on the `PinpointSMSVoiceV2` service. /// - /// Adds or overwrites only the specified tags for the specified Amazon Pinpoint SMS Voice, version 2 resource. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see [ Tagging Amazon Pinpoint resources](https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html) in the Amazon Pinpoint Developer Guide. + /// Adds or overwrites only the specified tags for the specified resource. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter TagResourceInput : [no documentation found] /// @@ -5719,7 +5941,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `UntagResource` operation on the `PinpointSMSVoiceV2` service. /// - /// Removes the association of the specified tags from an Amazon Pinpoint SMS Voice V2 resource. For more information on tags see [ Tagging Amazon Pinpoint resources](https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html) in the Amazon Pinpoint Developer Guide. + /// Removes the association of the specified tags from a resource. For more information on tags see [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the AWS End User Messaging SMS User Guide. /// /// - Parameter UntagResourceInput : [no documentation found] /// @@ -5793,7 +6015,7 @@ extension PinpointSMSVoiceV2Client { /// Performs the `UpdateEventDestination` operation on the `PinpointSMSVoiceV2` service. /// - /// Updates an existing event destination in a configuration set. You can update the IAM role ARN for CloudWatch Logs and Kinesis Data Firehose. You can also enable or disable the event destination. You may want to update an event destination to change its matching event types or updating the destination resource ARN. You can't change an event destination's type between CloudWatch Logs, Kinesis Data Firehose, and Amazon SNS. + /// Updates an existing event destination in a configuration set. You can update the IAM role ARN for CloudWatch Logs and Firehose. You can also enable or disable the event destination. You may want to update an event destination to change its matching event types or updating the destination resource ARN. You can't change an event destination's type between CloudWatch Logs, Firehose, and Amazon SNS. /// /// - Parameter UpdateEventDestinationInput : [no documentation found] /// diff --git a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift index e1e16fee414..fd0f83a0daf 100644 --- a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift +++ b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift @@ -13835,6 +13835,7 @@ extension SageMakerClientTypes { case jumpStart case models case modelEvaluation + case performanceEvaluation case pipelines case projects case training @@ -13853,6 +13854,7 @@ extension SageMakerClientTypes { .jumpStart, .models, .modelEvaluation, + .performanceEvaluation, .pipelines, .projects, .training @@ -13877,6 +13879,7 @@ extension SageMakerClientTypes { case .jumpStart: return "JumpStart" case .models: return "Models" case .modelEvaluation: return "ModelEvaluation" + case .performanceEvaluation: return "PerformanceEvaluation" case .pipelines: return "Pipelines" case .projects: return "Projects" case .training: return "Training" @@ -13886,21 +13889,75 @@ extension SageMakerClientTypes { } } +extension SageMakerClientTypes { + + public enum SageMakerImageName: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case sagemakerDistribution + case sdkUnknown(Swift.String) + + public static var allCases: [SageMakerImageName] { + return [ + .sagemakerDistribution + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .sagemakerDistribution: return "sagemaker_distribution" + case let .sdkUnknown(s): return s + } + } + } +} + +extension SageMakerClientTypes { + /// The SageMaker images that are hidden from the Studio user interface. You must specify the SageMaker image name and version aliases. + public struct HiddenSageMakerImage { + /// The SageMaker image name that you are hiding from the Studio user interface. + public var sageMakerImageName: SageMakerClientTypes.SageMakerImageName? + /// The version aliases you are hiding from the Studio user interface. + public var versionAliases: [Swift.String]? + + public init( + sageMakerImageName: SageMakerClientTypes.SageMakerImageName? = nil, + versionAliases: [Swift.String]? = nil + ) + { + self.sageMakerImageName = sageMakerImageName + self.versionAliases = versionAliases + } + } + +} + extension SageMakerClientTypes { /// Studio settings. If these settings are applied on a user level, they take priority over the settings applied on a domain level. public struct StudioWebPortalSettings { /// The [Applications supported in Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-apps.html) that are hidden from the Studio left navigation pane. public var hiddenAppTypes: [SageMakerClientTypes.AppType]? + /// The instance types you are hiding from the Studio user interface. + public var hiddenInstanceTypes: [SageMakerClientTypes.AppInstanceType]? /// The machine learning tools that are hidden from the Studio left navigation pane. public var hiddenMlTools: [SageMakerClientTypes.MlTools]? + /// The version aliases you are hiding from the Studio user interface. + public var hiddenSageMakerImageVersionAliases: [SageMakerClientTypes.HiddenSageMakerImage]? public init( hiddenAppTypes: [SageMakerClientTypes.AppType]? = nil, - hiddenMlTools: [SageMakerClientTypes.MlTools]? = nil + hiddenInstanceTypes: [SageMakerClientTypes.AppInstanceType]? = nil, + hiddenMlTools: [SageMakerClientTypes.MlTools]? = nil, + hiddenSageMakerImageVersionAliases: [SageMakerClientTypes.HiddenSageMakerImage]? = nil ) { self.hiddenAppTypes = hiddenAppTypes + self.hiddenInstanceTypes = hiddenInstanceTypes self.hiddenMlTools = hiddenMlTools + self.hiddenSageMakerImageVersionAliases = hiddenSageMakerImageVersionAliases } } @@ -18762,7 +18819,6 @@ extension SageMakerClientTypes { /// Information required for human workers to complete a labeling task. public struct HumanTaskConfig { /// Configures how labels are consolidated across human workers. - /// This member is required. public var annotationConsolidationConfig: SageMakerClientTypes.AnnotationConsolidationConfig? /// Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects. To increase the maximum value to 5000 objects, contact Amazon Web Services Support. public var maxConcurrentTaskCount: Swift.Int? @@ -19361,7 +19417,6 @@ extension SageMakerClientTypes { /// * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation /// /// * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation - /// This member is required. public var preHumanTaskLambdaArn: Swift.String? /// The price that you pay for each task performed by an Amazon Mechanical Turk worker. public var publicWorkforceTaskPrice: SageMakerClientTypes.PublicWorkforceTaskPrice? @@ -37509,7 +37564,6 @@ extension SageMakerClientTypes { /// This member is required. public var lastModifiedTime: Foundation.Date? /// The Amazon Resource Name (ARN) of a Lambda function. The function is run before each data object is sent to a worker. - /// This member is required. public var preHumanTaskLambdaArn: Swift.String? /// The Amazon Resource Name (ARN) of the work team assigned to the job. /// This member is required. @@ -67294,7 +67348,9 @@ extension SageMakerClientTypes.StudioWebPortalSettings { static func write(value: SageMakerClientTypes.StudioWebPortalSettings?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["HiddenAppTypes"].writeList(value.hiddenAppTypes, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["HiddenInstanceTypes"].writeList(value.hiddenInstanceTypes, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["HiddenMlTools"].writeList(value.hiddenMlTools, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["HiddenSageMakerImageVersionAliases"].writeList(value.hiddenSageMakerImageVersionAliases, memberWritingClosure: SageMakerClientTypes.HiddenSageMakerImage.write(value:to:), memberNodeInfo: "member", isFlattened: false) } static func read(from reader: SmithyJSON.Reader) throws -> SageMakerClientTypes.StudioWebPortalSettings { @@ -67302,6 +67358,25 @@ extension SageMakerClientTypes.StudioWebPortalSettings { var value = SageMakerClientTypes.StudioWebPortalSettings() value.hiddenMlTools = try reader["HiddenMlTools"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) value.hiddenAppTypes = try reader["HiddenAppTypes"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.hiddenInstanceTypes = try reader["HiddenInstanceTypes"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.hiddenSageMakerImageVersionAliases = try reader["HiddenSageMakerImageVersionAliases"].readListIfPresent(memberReadingClosure: SageMakerClientTypes.HiddenSageMakerImage.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension SageMakerClientTypes.HiddenSageMakerImage { + + static func write(value: SageMakerClientTypes.HiddenSageMakerImage?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["SageMakerImageName"].write(value.sageMakerImageName) + try writer["VersionAliases"].writeList(value.versionAliases, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> SageMakerClientTypes.HiddenSageMakerImage { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = SageMakerClientTypes.HiddenSageMakerImage() + value.sageMakerImageName = try reader["SageMakerImageName"].readIfPresent() + value.versionAliases = try reader["VersionAliases"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) return value } } @@ -70245,7 +70320,7 @@ extension SageMakerClientTypes.HumanTaskConfig { var value = SageMakerClientTypes.HumanTaskConfig() value.workteamArn = try reader["WorkteamArn"].readIfPresent() ?? "" value.uiConfig = try reader["UiConfig"].readIfPresent(with: SageMakerClientTypes.UiConfig.read(from:)) - value.preHumanTaskLambdaArn = try reader["PreHumanTaskLambdaArn"].readIfPresent() ?? "" + value.preHumanTaskLambdaArn = try reader["PreHumanTaskLambdaArn"].readIfPresent() value.taskKeywords = try reader["TaskKeywords"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.taskTitle = try reader["TaskTitle"].readIfPresent() ?? "" value.taskDescription = try reader["TaskDescription"].readIfPresent() ?? "" @@ -73366,7 +73441,7 @@ extension SageMakerClientTypes.LabelingJobSummary { value.labelingJobStatus = try reader["LabelingJobStatus"].readIfPresent() ?? .sdkUnknown("") value.labelCounters = try reader["LabelCounters"].readIfPresent(with: SageMakerClientTypes.LabelCounters.read(from:)) value.workteamArn = try reader["WorkteamArn"].readIfPresent() ?? "" - value.preHumanTaskLambdaArn = try reader["PreHumanTaskLambdaArn"].readIfPresent() ?? "" + value.preHumanTaskLambdaArn = try reader["PreHumanTaskLambdaArn"].readIfPresent() value.annotationConsolidationLambdaArn = try reader["AnnotationConsolidationLambdaArn"].readIfPresent() value.failureReason = try reader["FailureReason"].readIfPresent() value.labelingJobOutput = try reader["LabelingJobOutput"].readIfPresent(with: SageMakerClientTypes.LabelingJobOutput.read(from:)) diff --git a/packageDependencies.plist b/packageDependencies.plist index af01add16b2..b937c2428e8 100644 --- a/packageDependencies.plist +++ b/packageDependencies.plist @@ -9,6 +9,6 @@ clientRuntimeBranch main clientRuntimeVersion - 0.74.0 + 0.75.0